feat: WBS-CRM-01 고객 카드 (Client Card) Phase 1 구현

DB:
- V006__CreateClients.sql: clients 테이블 (name, company_name, phone,
  email, service_type, tax_type, status, source, memo)

Domain:
- Client 엔티티
- IClientRepository (GetPagedAsync 이름/연락처/회사명 검색 + 상태 필터)

Infrastructure:
- ClientRepository: ILIKE 검색, 페이징, CRUD

Application:
- ClientService: ServiceTypes/TaxTypes/Sources 상수 정의
- CreateClientDto

Admin UI:
- ClientList.razor: 검색바 + 상태 필터 + 페이징 테이블
- ClientEdit.razor: 기본정보/세무정보/관리정보 섹션 폼
- MainLayout: 고객 관리 NavGroup 추가, 홈페이지 메뉴 그룹화

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-27 23:28:27 +09:00
parent 624156361a
commit 0e98e68532
11 changed files with 599 additions and 2 deletions
+19
View File
@@ -0,0 +1,19 @@
-- 고객 카드 (Client CRM)
CREATE TABLE IF NOT EXISTS clients (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
company_name VARCHAR(200),
phone VARCHAR(30),
email VARCHAR(200),
service_type VARCHAR(50), -- 기장, 부동산, 증여·상속, 종합소득세, 기타
tax_type VARCHAR(30), -- 개인, 법인, 면세사업자
status VARCHAR(20) NOT NULL DEFAULT 'active', -- active, inactive
source VARCHAR(50), -- 홈페이지문의, 소개, 직접방문, 기타
memo TEXT,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX IF NOT EXISTS idx_clients_status ON clients (status);
CREATE INDEX IF NOT EXISTS idx_clients_name ON clients (name);
CREATE INDEX IF NOT EXISTS idx_clients_phone ON clients (phone);