어떤 기능인가요?
레거시 ERD(stream-init.sql, 24개 테이블)를 컨벤션에 맞는 Flyway 마이그레이션 + JPA Entity + 도메인 record로 옮긴다. 회원 약관 동의(member_term_agreements)·알림 설정(member_notification_settings) 테이블을 새로 추가한다.
📝 작업 상세 내용
📁 참고 자료 (선택)
- 원본 스키마:
docs/plans/stream-init.sql
- 확정된 설계 결정
- PK·
student_id 등 컬럼명은 원본 유지, locker_applications.applied_at만 created_at으로 흡수
is_deleted boolean soft delete (BaseSoftDeleteEntity)
- MySQL
ENUM → VARCHAR + EnumType.STRING, 배열 컬럼 → JSON
items.type → ItemType { CONSUMABLE, RENTAL }, work_schedules는 member_id만
- 약관 동의는 약관 종류별 1행(
term_version 포함), 알림 설정은 회원당 1행 4컬럼(rental/event/locker/notice_enabled)
- 도메인 배정:
files → internal, notifications → member, chat_messages·open_feedbacks → welfare
어떤 기능인가요?
📝 작업 상세 내용
infrastructure:db설정 골격 —application-infrastructure-db.yml,.env.example, 테스트용 H2 오버라이드,BaseCreatedTimeEntity, 도메인 모듈 의존 추가V1__create_member_tables.sql(members,notifications, 약관 동의, 알림 설정) + record·enum + EntityV2__create_event_tables.sql(행사·사물함·아카이브 9개) + record·enum + EntityV3__create_welfare_tables.sql(대여·회비·공지·소통 8개) + record·enum + EntityV4__create_internal_tables.sql(운영·파일 5개) + record·enum + Entity📁 참고 자료 (선택)
docs/plans/stream-init.sqlstudent_id등 컬럼명은 원본 유지,locker_applications.applied_at만created_at으로 흡수is_deletedboolean soft delete (BaseSoftDeleteEntity)ENUM→VARCHAR+EnumType.STRING, 배열 컬럼 →JSONitems.type→ItemType { CONSUMABLE, RENTAL },work_schedules는member_id만term_version포함), 알림 설정은 회원당 1행 4컬럼(rental/event/locker/notice_enabled)files→ internal,notifications→ member,chat_messages·open_feedbacks→ welfare