@@ -1038,6 +1038,54 @@ BEGIN
10381038END;
10391039$$ LANGUAGE plpgsql;
10401040
1041+ CREATE TYPE term_category AS ENUM (' SERVICE' , ' PRIVACY' , ' MARKETING' , ' LOCATION' );
1042+ ALTER TYPE term_category OWNER TO postgres;
1043+
1044+ CREATE TABLE IF NOT EXISTS terms
1045+ (
1046+ term_id SERIAL PRIMARY KEY ,
1047+ version INTEGER NOT NULL ,
1048+ title TEXT NOT NULL ,
1049+ description TEXT NOT NULL ,
1050+ is_mandatory BOOLEAN DEFAULT FALSE NOT NULL ,
1051+ term_category term_category NOT NULL DEFAULT ' SERVICE' ,
1052+ created_at TIMESTAMP DEFAULT NOW() NOT NULL ,
1053+ modified_at TIMESTAMP DEFAULT NOW() NOT NULL ,
1054+ deleted_at TIMESTAMP
1055+ );
1056+
1057+ COMMENT ON TABLE terms IS ' 약관' ;
1058+
1059+ COMMENT ON COLUMN terms.term_id IS ' 약관 ID' ;
1060+ COMMENT ON COLUMN terms.version IS ' 약관 버전' ;
1061+ COMMENT ON COLUMN terms.title IS ' 약관 제목' ;
1062+ COMMENT ON COLUMN terms.description IS ' 약관 설명' ;
1063+ COMMENT ON COLUMN terms.is_mandatory IS ' 필수 여부' ;
1064+ COMMENT ON COLUMN terms.term_category IS ' 약관 카테고리' ;
1065+ COMMENT ON COLUMN terms.created_at IS ' 생성 일시' ;
1066+ COMMENT ON COLUMN terms.modified_at IS ' 수정 일시' ;
1067+ COMMENT ON COLUMN terms.deleted_at IS ' 삭제 일시' ;
1068+
1069+ ALTER TABLE terms OWNER TO postgres;
1070+ GRANT DELETE , INSERT, SELECT , UPDATE ON terms TO postgres;
1071+
1072+ CREATE TABLE IF NOT EXISTS customer_terms (
1073+ customer_id INTEGER NOT NULL REFERENCES customers(customer_id),
1074+ term_id INTEGER NOT NULL REFERENCES terms(term_id),
1075+ version INTEGER NOT NULL ,
1076+ agreed_at TIMESTAMP DEFAULT NOW() NOT NULL ,
1077+ PRIMARY KEY (customer_id, term_id)
1078+ );
1079+
1080+ COMMENT ON TABLE customer_terms IS ' 고객 약관 동의' ;
1081+
1082+ COMMENT ON COLUMN customer_terms.customer_id IS ' 고객ID' ;
1083+ COMMENT ON COLUMN customer_terms.term_id IS ' 약관ID' ;
1084+ COMMENT ON COLUMN customer_terms.version IS ' 동의한 약관 버전' ;
1085+ COMMENT ON COLUMN customer_terms.agreed_at IS ' 동의 시각' ;
1086+
1087+ ALTER TABLE customer_terms OWNER TO postgres;
1088+ GRANT DELETE , INSERT, SELECT , UPDATE ON customer_terms TO postgres;
10411089
10421090CREATE OR REPLACE FUNCTION customer_dummy_data_insert (add_row INT ) RETURNS VOID AS
10431091$$
@@ -1103,3 +1151,24 @@ BEGIN
11031151 FROM GENERATE_SERIES(1 , add_row);
11041152END;
11051153$$ LANGUAGE plpgsql;
1154+
1155+ INSERT INTO terms (version, title, description, is_mandatory, term_category)
1156+ VALUES
1157+ (1 , ' 서비스 이용 약관' , ' 서비스 이용과 관련된 약관입니다.' , true, ' SERVICE' ),
1158+ (1 , ' 개인정보 처리방침' , ' 개인정보 수집 및 이용 동의에 대한 내용입니다.' , true, ' PRIVACY' ),
1159+ (1 , ' 마케팅 수신 동의' , ' 마케팅 및 프로모션 알림 수신에 대한 동의입니다.' , false, ' MARKETING' ),
1160+ (1 , ' 위치 정보 이용 동의' , ' 위치 정보 수집 및 이용에 대한 약관입니다.' , false, ' LOCATION' ),
1161+ (2 , ' 개정 서비스 이용 약관' , ' 서비스 이용 약관 개정 버전입니다.' , true, ' SERVICE' ),
1162+ (2 , ' 개정 개인정보 처리방침' , ' 개인정보 처리방침 개정 버전입니다.' , true, ' PRIVACY' );
1163+
1164+ INSERT INTO customer_terms (customer_id, term_id, version, agreed_at)
1165+ SELECT
1166+ c .customer_id ,
1167+ t .term_id ,
1168+ 1 AS version,
1169+ NOW() AS agreed_at
1170+ FROM
1171+ (SELECT customer_id FROM customers ORDER BY customer_id LIMIT 50 ) AS c,
1172+ (SELECT term_id FROM terms WHERE version = 1 ) AS t;
1173+
1174+
0 commit comments