[#44] 매장 기능 도입 #45

Merged
pricelees merged 116 commits from feat/#44 into main 2025-09-20 03:15:06 +00:00
4 changed files with 21 additions and 3 deletions
Showing only changes of commit 8cd1084bd8 - Show all commits

View File

@ -16,9 +16,18 @@ import java.time.LocalDateTime
class StoreEntity( class StoreEntity(
id: Long, id: Long,
@Column(unique = false)
var name: String, var name: String,
@Column(unique = false)
var address: String, var address: String,
@Column(unique = false)
var contact: String,
@Column(unique = false)
val businessRegNum: String, val businessRegNum: String,
val regionCode: String, val regionCode: String,
) : PersistableBaseEntity(id) { ) : PersistableBaseEntity(id) {

View File

@ -12,12 +12,16 @@ create table if not exists store(
id bigint primary key, id bigint primary key,
name varchar(20) not null, name varchar(20) not null,
address varchar(100) not null, address varchar(100) not null,
contact varchar(50) not null,
business_reg_num varchar(12) not null, business_reg_num varchar(12) not null,
region_code varchar(10) not null, region_code varchar(10) not null,
created_at timestamp not null, created_at timestamp not null,
updated_at timestamp not null, updated_at timestamp not null,
constraint uk_store__name unique (name),
constraint uk_store__contact unique (contact),
constraint uk_store__address unique (address),
constraint uk_store__business_reg_num unique (business_reg_num), constraint uk_store__business_reg_num unique (business_reg_num),
constraint fk_store__region_code foreign key (region_code) references region (code) constraint fk_store__region_code foreign key (region_code) references region (code)
); );

View File

@ -2,6 +2,7 @@ package roomescape.data
import io.kotest.core.spec.style.StringSpec import io.kotest.core.spec.style.StringSpec
import roomescape.common.config.next import roomescape.common.config.next
import roomescape.supports.randomPhoneNumber
import roomescape.supports.tsidFactory import roomescape.supports.tsidFactory
import java.io.File import java.io.File
import java.time.LocalDateTime import java.time.LocalDateTime
@ -39,6 +40,8 @@ class StoreDataInitializer : StringSpec({
} while (usedStoreName.contains(storeName)) } while (usedStoreName.contains(storeName))
usedStoreName.add(storeName) usedStoreName.add(storeName)
val contact = randomPhoneNumber()
var businessRegNum: String var businessRegNum: String
do { do {
businessRegNum = generateBusinessRegNum() businessRegNum = generateBusinessRegNum()
@ -51,15 +54,15 @@ class StoreDataInitializer : StringSpec({
val id: Long = tsidFactory.next().also { storeIds.add(it) } val id: Long = tsidFactory.next().also { storeIds.add(it) }
storeSqlRows.add( storeSqlRows.add(
"(${id}, '$storeName', '$address', '$businessRegNum', '${region.regionCode}', '$createdAt', '$updatedAt')" "(${id}, '$storeName', '$address', '$contact', '$businessRegNum', '${region.regionCode}', '$createdAt', '$updatedAt')"
) )
storeDataRows.add( storeDataRows.add(
"$id, $storeName, $address, $businessRegNum, ${region.regionCode}, $createdAt, $updatedAt" "$id, $storeName, $address, $contact, $businessRegNum, ${region.regionCode}, $createdAt, $updatedAt"
) )
} }
} }
StringBuilder("INSERT INTO store (id, name, address, business_reg_num, region_code, created_at, updated_at) VALUES ") StringBuilder("INSERT INTO store (id, name, address, contact, business_reg_num, region_code, created_at, updated_at) VALUES ")
.append(storeSqlRows.joinToString(",\n")) .append(storeSqlRows.joinToString(",\n"))
.append(";") .append(";")
.toString() .toString()

View File

@ -31,12 +31,14 @@ object StoreFixture {
id: Long = tsidFactory.next(), id: Long = tsidFactory.next(),
name: String = "테스트-${randomString()}", name: String = "테스트-${randomString()}",
address: String = "서울특별시 강북구 행복길 123", address: String = "서울특별시 강북구 행복길 123",
contact: String = randomPhoneNumber(),
businessRegNum: String = "123-45-67890", businessRegNum: String = "123-45-67890",
regionCode: String = "1111000000" regionCode: String = "1111000000"
) = StoreEntity( ) = StoreEntity(
id = id, id = id,
name = name, name = name,
address = address, address = address,
contact = contact,
businessRegNum = businessRegNum, businessRegNum = businessRegNum,
regionCode = regionCode regionCode = regionCode
) )