feat: CRM Phase 1-2 완성 + 시즌 시뮬레이터 + 개인정보처리방침/이용약관
TaxBaik CI/CD / build-and-deploy (push) Successful in 55s
TaxBaik Browser E2E / browser-e2e (push) Failing after 1m53s

- WBS-CRM-02: 상담 이력 (consultations 테이블 V008, ClientDetail.razor)
- WBS-CRM-03: 문의→고객 전환 (V009 client_id FK, InquiryDetail 고객등록 버튼)
- WBS-CRM-04: 신고 일정 캘린더 (tax_filings 테이블 V010, TaxFilingList.razor)
- WBS-CRM-05: 문의 상태 5단계 확장 (V011, InquiryStatus enum, InquiryList 탭)
- WBS-MKT-04: 시즌 시뮬레이터 어드민 페이지 (SeasonSimulator.razor)
- WBS-UX-04: 개인정보처리방침 /taxbaik/privacy, 이용약관 /taxbaik/terms
- Dashboard.razor 마감 임박 신고 위젯 추가

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-28 00:01:16 +09:00
parent 9c96f15f86
commit 79492184d0
35 changed files with 1447 additions and 104 deletions
@@ -0,0 +1,13 @@
-- 상담 이력 테이블
CREATE TABLE IF NOT EXISTS consultations (
id SERIAL PRIMARY KEY,
client_id INT NOT NULL REFERENCES clients(id) ON DELETE CASCADE,
consultation_date DATE NOT NULL DEFAULT CURRENT_DATE,
service_type VARCHAR(50),
summary TEXT NOT NULL,
result VARCHAR(30), -- consulting, contracted, rejected, pending, completed
fee NUMERIC(12,0),
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX IF NOT EXISTS idx_consultations_client ON consultations (client_id);
@@ -0,0 +1,4 @@
-- 문의 → 고객 연결 (문의에서 고객 카드 생성 시 연결)
ALTER TABLE inquiries ADD COLUMN IF NOT EXISTS client_id INT REFERENCES clients(id) ON DELETE SET NULL;
CREATE INDEX IF NOT EXISTS idx_inquiries_client ON inquiries (client_id);
+15
View File
@@ -0,0 +1,15 @@
-- 고객별 세금 신고 일정
CREATE TABLE IF NOT EXISTS tax_filings (
id SERIAL PRIMARY KEY,
client_id INT NOT NULL REFERENCES clients(id) ON DELETE CASCADE,
filing_type VARCHAR(60) NOT NULL, -- 부가가치세, 종합소득세, 법인세, 원천징수, 종합부동산세, 기타
due_date DATE NOT NULL,
status VARCHAR(20) NOT NULL DEFAULT 'pending', -- pending, filed, overdue
memo TEXT,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX IF NOT EXISTS idx_tax_filings_client ON tax_filings (client_id);
CREATE INDEX IF NOT EXISTS idx_tax_filings_due_date ON tax_filings (due_date);
CREATE INDEX IF NOT EXISTS idx_tax_filings_status ON tax_filings (status);
@@ -0,0 +1,9 @@
-- 문의 상태 5단계로 확장 + 처리 메모 컬럼 추가
-- 기존: new, contacted, completed
-- 신규: new(신규), consulting(상담중), contracted(계약완료), rejected(거절), closed(종결)
UPDATE inquiries SET status = 'consulting' WHERE status = 'contacted';
UPDATE inquiries SET status = 'closed' WHERE status = 'completed';
ALTER TABLE inquiries ADD COLUMN IF NOT EXISTS admin_memo TEXT;
ALTER TABLE inquiries ADD COLUMN IF NOT EXISTS updated_at TIMESTAMPTZ DEFAULT NOW();