mirror of
https://github.com/ktds-dg0501/kt-event-marketing.git
synced 2026-06-12 22:39:10 +00:00
Event Service 엔티티와 DDL 형상 일치화 작업
Critical 및 High 우선순위 이슈 수정: 1. Event 엔티티 nullable 필드 변경 - eventName: nullable로 변경 (AI 추천 후 설정) - startDate, endDate: nullable로 변경 (AI 추천 후 설정) 2. Event.publish() 검증 로직 강화 - eventName 필수 검증 추가 - startDate, endDate 필수 검증 추가 - 기간 유효성 검증 추가 (시작일 <= 종료일) 3. DDL 스키마 수정 - event_name NOT NULL 제거 - start_date, end_date NOT NULL 제거 - chk_event_period 제약조건 수정 (NULL 허용) 4. jobs 테이블 외래키 추가 - event_id에 대한 외래키 제약조건 추가 - ON DELETE CASCADE 설정으로 데이터 무결성 보장 영향: - 이벤트 생성 시 eventName, startDate, endDate를 NULL로 허용 - 배포(publish) 시점에 필수 필드 검증으로 데이터 무결성 보장 - 이벤트 삭제 시 관련 Job 자동 삭제로 고아 레코드 방지 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -22,11 +22,11 @@ CREATE TABLE IF NOT EXISTS events (
|
||||
event_id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
user_id UUID NOT NULL,
|
||||
store_id UUID NOT NULL,
|
||||
event_name VARCHAR(200) NOT NULL,
|
||||
event_name VARCHAR(200),
|
||||
description TEXT,
|
||||
objective VARCHAR(100) NOT NULL,
|
||||
start_date DATE NOT NULL,
|
||||
end_date DATE NOT NULL,
|
||||
start_date DATE,
|
||||
end_date DATE,
|
||||
status VARCHAR(20) NOT NULL DEFAULT 'DRAFT',
|
||||
selected_image_id UUID,
|
||||
selected_image_url VARCHAR(500),
|
||||
@@ -34,7 +34,7 @@ CREATE TABLE IF NOT EXISTS events (
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
-- 제약조건
|
||||
CONSTRAINT chk_event_period CHECK (start_date <= end_date),
|
||||
CONSTRAINT chk_event_period CHECK (start_date IS NULL OR end_date IS NULL OR start_date <= end_date),
|
||||
CONSTRAINT chk_event_status CHECK (status IN ('DRAFT', 'PUBLISHED', 'ENDED'))
|
||||
);
|
||||
|
||||
@@ -185,6 +185,8 @@ CREATE TABLE IF NOT EXISTS jobs (
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
-- 제약조건
|
||||
CONSTRAINT fk_jobs_event FOREIGN KEY (event_id)
|
||||
REFERENCES events(event_id) ON DELETE CASCADE,
|
||||
CONSTRAINT chk_job_type CHECK (job_type IN ('AI_RECOMMENDATION', 'IMAGE_GENERATION')),
|
||||
CONSTRAINT chk_job_status CHECK (status IN ('PENDING', 'PROCESSING', 'COMPLETED', 'FAILED')),
|
||||
CONSTRAINT chk_job_progress CHECK (progress >= 0 AND progress <= 100)
|
||||
|
||||
Reference in New Issue
Block a user