Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
package com.damaba.common_file.domain

data class File(
val name: String,
val url: String,
)
import java.util.Objects

open class File(val name: String, val url: String) {
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (other !is File) return false
return this.name == other.name && this.url == other.url
}

override fun hashCode(): Int = Objects.hash(name, url)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.damaba.common_file.domain

class Image(name: String, url: String) : File(name, url) {
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (other !is Image) return false
return super.equals(other)
}

override fun hashCode(): Int = super.hashCode()
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.damaba.damaba.adapter.inbound.promotion.dto

import com.damaba.damaba.domain.promotion.PromotionActiveRegion
import com.damaba.damaba.domain.region.Region
import io.swagger.v3.oas.annotations.media.Schema

data class PromotionActiveRegionResponse(
Expand All @@ -11,9 +11,9 @@ data class PromotionActiveRegionResponse(
val name: String,
) {
companion object {
fun from(promotionActiveRegion: PromotionActiveRegion) = PromotionActiveRegionResponse(
category = promotionActiveRegion.category,
name = promotionActiveRegion.name,
fun from(region: Region) = PromotionActiveRegionResponse(
category = region.category,
name = region.name,
)
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.damaba.damaba.adapter.outbound.photographer

import com.damaba.damaba.domain.photographer.BusinessSchedule
import jakarta.persistence.Column
import jakarta.persistence.Convert
import jakarta.persistence.Embeddable
Expand All @@ -17,4 +18,14 @@ data class BusinessScheduleEmbeddable(

@Column(name = "business_end_time", nullable = true)
val endTime: LocalTime,
)
) {
fun toDomain() = BusinessSchedule(days, startTime, endTime)

companion object {
fun from(businessSchedule: BusinessSchedule) = BusinessScheduleEmbeddable(
days = businessSchedule.days,
startTime = businessSchedule.startTime,
endTime = businessSchedule.endTime,
)
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
package com.damaba.damaba.adapter.outbound.photographer

import com.damaba.common_file.domain.Image
import com.damaba.damaba.adapter.outbound.common.AddressJpaEmbeddable
import com.damaba.damaba.adapter.outbound.common.BaseJpaTimeEntity
import com.damaba.damaba.domain.common.PhotographyType
import com.damaba.damaba.domain.photographer.Photographer
import com.damaba.damaba.domain.region.Region
import com.damaba.user.domain.user.User
import jakarta.persistence.CascadeType
import jakarta.persistence.Column
import jakarta.persistence.Convert
Expand Down Expand Up @@ -51,4 +55,47 @@ class PhotographerJpaEntity(
@OneToMany(mappedBy = "photographer", cascade = [CascadeType.ALL], orphanRemoval = true)
var activeRegions: MutableSet<PhotographerActiveRegionJpaEntity> = mutableSetOf()
private set

fun toDomain(user: User): Photographer = Photographer(
id = userId,
type = user.type,
roles = user.roles,
loginType = user.loginType,
oAuthLoginUid = user.oAuthLoginUid,
nickname = user.nickname,
profileImage = user.profileImage,
gender = user.gender,
instagramId = user.instagramId,
mainPhotographyTypes = mainPhotographyTypes,
contactLink = contactLink,
description = description,
address = address?.toDomain(),
businessSchedule = businessSchedule?.toDomain(),
portfolio = portfolio.map { Image(it.name, it.url) },
activeRegions = activeRegions.map { Region(it.category, it.name) },
)

companion object {
fun from(photographer: Photographer): PhotographerJpaEntity {
val photographerJpaEntity = PhotographerJpaEntity(
userId = photographer.id,
mainPhotographyTypes = photographer.mainPhotographyTypes,
contactLink = photographer.contactLink,
description = photographer.description,
address = photographer.address?.let { AddressJpaEmbeddable.from(it) },
businessSchedule = photographer.businessSchedule?.let { BusinessScheduleEmbeddable.from(it) },
)
photographerJpaEntity.portfolio.addAll(
photographer.portfolio.map {
PhotographerPortfolioImageJpaEntity(photographerJpaEntity, it.name, it.url)
},
)
photographerJpaEntity.activeRegions.addAll(
photographer.activeRegions.map {
PhotographerActiveRegionJpaEntity(photographerJpaEntity, it.category, it.name)
},
)
return photographerJpaEntity
}
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.damaba.damaba.adapter.outbound.promotion

import com.damaba.damaba.adapter.outbound.common.BaseJpaTimeEntity
import com.damaba.damaba.domain.promotion.PromotionActiveRegion
import com.damaba.damaba.domain.region.Region
import jakarta.persistence.Column
import jakarta.persistence.Entity
import jakarta.persistence.FetchType
Expand Down Expand Up @@ -37,14 +37,14 @@ class PromotionActiveRegionJpaEntity(
var name: String = name
private set

fun toDomain(): PromotionActiveRegion = PromotionActiveRegion(
fun toDomain(): Region = Region(
category = this.category,
name = this.name,
)

companion object {
fun from(
promotionActiveRegion: PromotionActiveRegion,
promotionActiveRegion: Region,
promotionJpaEntity: PromotionJpaEntity,
): PromotionActiveRegionJpaEntity = PromotionActiveRegionJpaEntity(
promotion = promotionJpaEntity,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.damaba.damaba.adapter.outbound.promotion

import com.damaba.common_file.domain.Image
import com.damaba.damaba.adapter.outbound.common.BaseJpaEntity
import com.damaba.damaba.domain.promotion.PromotionImage
import jakarta.persistence.Column
import jakarta.persistence.Entity
import jakarta.persistence.FetchType
Expand Down Expand Up @@ -42,14 +42,14 @@ class PromotionImageJpaEntity(
var deletedAt: LocalDateTime? = null
private set

fun toDomain(): PromotionImage = PromotionImage(
fun toDomain(): Image = Image(
name = this.name,
url = this.url,
)

companion object {
fun from(
promotionImage: PromotionImage,
promotionImage: Image,
promotionJpaEntity: PromotionJpaEntity,
): PromotionImageJpaEntity = PromotionImageJpaEntity(
promotion = promotionJpaEntity,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.damaba.damaba.application.service.promotion

import com.damaba.common_file.domain.Image
import com.damaba.damaba.application.port.inbound.promotion.FindPromotionsUseCase
import com.damaba.damaba.application.port.inbound.promotion.GetPromotionDetailUseCase
import com.damaba.damaba.application.port.inbound.promotion.PostPromotionUseCase
Expand All @@ -8,8 +9,7 @@ import com.damaba.damaba.application.port.outbound.promotion.GetPromotionPort
import com.damaba.damaba.application.port.outbound.promotion.SavePromotionPort
import com.damaba.damaba.domain.common.Pagination
import com.damaba.damaba.domain.promotion.Promotion
import com.damaba.damaba.domain.promotion.PromotionActiveRegion
import com.damaba.damaba.domain.promotion.PromotionImage
import com.damaba.damaba.domain.region.Region
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional

Expand Down Expand Up @@ -45,10 +45,8 @@ class PromotionService(
endedAt = command.endedAt,
photographerName = command.photographerName,
photographerInstagramId = command.photographerInstagramId,
images = command.images.map { file -> PromotionImage(file.name, file.url) },
activeRegions = command.activeRegions.map { region ->
PromotionActiveRegion(region.category, region.name)
}.toSet(),
images = command.images.map { file -> Image(file.name, file.url) },
activeRegions = command.activeRegions.map { region -> Region(region.category, region.name) }.toSet(),
hashtags = command.hashtags,
),
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,60 @@
package com.damaba.damaba.domain.photographer

import com.damaba.common_file.domain.Image
import com.damaba.damaba.domain.common.Address
import com.damaba.damaba.domain.common.PhotographyType
import com.damaba.damaba.domain.region.Region
import com.damaba.user.domain.user.User
import com.damaba.user.domain.user.constant.Gender
import com.damaba.user.domain.user.constant.LoginType
import com.damaba.user.domain.user.constant.UserRoleType
import com.damaba.user.domain.user.constant.UserType
import java.util.Objects

data class Photographer(
val userId: Long,
val mainPhotographyTypes: Set<PhotographyType>,
val contactLink: String?,
val description: String?,
val address: Address?,
val businessSchedule: BusinessSchedule?,
val portfolio: List<PhotographerPortfolioImage>,
val activeRegions: List<PhotographerActiveRegion>,
)
class Photographer(
id: Long,
type: UserType,
roles: Set<UserRoleType>,
loginType: LoginType,
oAuthLoginUid: String,
nickname: String,
profileImage: Image,
gender: Gender,
instagramId: String?,
mainPhotographyTypes: Set<PhotographyType>,
contactLink: String?,
description: String?,
address: Address?,
businessSchedule: BusinessSchedule?,
portfolio: List<Image>,
activeRegions: List<Region>,
) : User(id, loginType, oAuthLoginUid, type, roles, nickname, profileImage, gender, instagramId) {
var mainPhotographyTypes: Set<PhotographyType> = mainPhotographyTypes
private set

var contactLink: String? = contactLink
private set

var description: String? = description
private set

var address: Address? = address
private set

var businessSchedule: BusinessSchedule? = businessSchedule
private set

var portfolio: List<Image> = portfolio
private set

var activeRegions: List<Region> = activeRegions
private set

override fun equals(other: Any?): Boolean {
if (this === other) return true
if (other !is Photographer) return false
return this.id == other.id
}

override fun hashCode(): Int = Objects.hashCode(id)
}

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.damaba.damaba.domain.promotion

import com.damaba.common_file.domain.Image
import com.damaba.damaba.domain.common.Address
import com.damaba.damaba.domain.promotion.constant.EventType
import com.damaba.damaba.domain.promotion.constant.PromotionType
import com.damaba.damaba.domain.region.Region
import java.time.LocalDate

class Promotion(
Expand All @@ -18,8 +20,8 @@ class Promotion(
val endedAt: LocalDate?,
val photographerName: String?,
val photographerInstagramId: String?,
val images: List<PromotionImage>,
val activeRegions: Set<PromotionActiveRegion>,
val images: List<Image>,
val activeRegions: Set<Region>,
val hashtags: Set<String>,
) {
override fun equals(other: Any?): Boolean {
Expand All @@ -43,8 +45,8 @@ class Promotion(
endedAt: LocalDate?,
photographerName: String?,
photographerInstagramId: String?,
images: List<PromotionImage>,
activeRegions: Set<PromotionActiveRegion>,
images: List<Image>,
activeRegions: Set<Region>,
hashtags: Set<String>,
): Promotion = Promotion(
id = 0,
Expand Down

This file was deleted.

This file was deleted.

Loading