# Task J.1: CRM Admin Configuration Center

## Goal

สร้างหน้า Admin Configuration สำหรับจัดการ configuration สำคัญของ CRM ที่ปัจจุบันมี foundation แล้ว แต่ยังจัดการผ่าน UI ไม่สมบูรณ์

ครอบคลุม:

1. Document Templates
2. Approval Workflows
3. Document Sequences

ยังไม่ทำ:

* Template drag/drop designer เต็มรูปแบบ
* PDF visual designer
* Advanced conditional approval
* Report builder

---

# Must Read

```txt
Layout.md
AGENTS.md
.agents/skills/kiranism-shadcn-dashboard

src/features/foundation/document-template/**
src/features/foundation/approval/**
src/features/foundation/document-sequence/**
src/features/foundation/master-options/**
src/features/foundation/storage/**
src/db/schema.ts

docs/adr/0009-approved-document-storage-lifecycle.md
docs/adr/0010-revenue-attribution-governance.md
docs/implementation/technical-debt.md
```

---

# Scope 1: Admin Settings Navigation

Under:

```txt
/dashboard/crm/settings
```

Add/complete pages:

```txt
/dashboard/crm/settings/templates
/dashboard/crm/settings/approval-workflows
/dashboard/crm/settings/document-sequences
```

Use existing:

```txt
PageContainer
DataTable
Sheet/Dialog
Bento/Settings cards
```

No new design system.

---

# Scope 2: Document Template Management

Current state:

* template schema exists
* template versions exist
* template mappings exist
* default pdfme template seed exists
* template settings page is mostly listing/read-focused

Need UI:

## Template List

Show:

```txt
Template Name
Document Type
Product Type
File Type
Default
Active
Latest Version
Mapping Count
Actions
```

Actions:

```txt
Create Template
Edit Template Metadata
Activate/Deactivate
Set Default
View Versions
```

## Template Version Management

For each template:

```txt
Version
Active
File Path
Schema JSON
Preview Image URL
Created By
Created At
```

Actions:

```txt
Create Version
View Version
Activate Version
Deactivate Version
```

## Template Mapping Management

Add basic CRUD UI for mappings:

```txt
placeholderKey
sourcePath
dataType
defaultValue
formatMask
sortOrder
```

For table mapping:

```txt
columnName
sourceField
columnLetter
sortOrder
formatMask
```

Rules:

* role: admin only
* audit template mutations
* no drag/drop designer yet
* JSON textarea is acceptable for schemaJson in this task
* validate schemaJson is valid JSON

Permissions:

```txt
crm.document_template.read
crm.document_template.create
crm.document_template.update
crm.document_template.delete
```

---

# Scope 3: Approval Workflow Management

Current state:

* approval schema exists
* seeded quotation standard workflow exists
* approval engine works
* no workflow management UI

Need UI:

## Workflow List

Show:

```txt
Workflow Code
Workflow Name
Entity Type
Active
Step Count
Actions
```

Actions:

```txt
Create Workflow
Edit Workflow
Activate/Deactivate
Manage Steps
```

## Workflow Step Management

For each workflow:

```txt
Step Number
Role Code
Role Name
Required
```

Actions:

```txt
Add Step
Edit Step
Remove Step
Reorder Steps
```

Rules:

* sequential approval only
* no parallel approval
* no conditional approval
* no delegation
* no escalation
* roleCode must match CRM businessRole or permission strategy
* do not break existing quotation approval flow

Permissions:

```txt
crm.approval.workflow.read
crm.approval.workflow.create
crm.approval.workflow.update
crm.approval.workflow.delete
```

Audit:

```txt
crm_approval_workflow
crm_approval_step
```

---

# Scope 4: Document Sequence Management

Current state:

* document sequence service exists
* seed exists
* generate/preview works
* admin UI incomplete

Need UI:

## Sequence List

Show:

```txt
Document Type
Prefix
Period
Branch
Current Number
Padding Length
Next Preview
Updated At
Actions
```

Actions:

```txt
Create Sequence
Edit Sequence
Preview Next Code
Reset Current Number
Deactivate/Delete if supported
```

Rules:

* reset requires confirmation
* changing prefix should not rewrite old document codes
* preview must not increment
* generation remains server-only
* organization scoped
* branch optional or from crm_branch options

Permissions:

```txt
crm.document_sequence.read
crm.document_sequence.create
crm.document_sequence.update
crm.document_sequence.reset
```

Audit:

```txt
crm_document_sequence
```

---

# Scope 5: Route Handlers

Add or complete APIs:

```txt
/api/crm/settings/document-templates/**
/api/crm/settings/approval-workflows/**
/api/crm/settings/document-sequences/**
```

หรือถ้ามี route เดิมแล้ว ให้ reuse และเติม missing mutation

All APIs must:

```txt
requireOrganizationAccess
requirePermission
filter by organizationId
audit mutations
return user-safe errors
```

---

# Scope 6: Mutation Freshness Rule

All CRUD pages must follow project hotfix rule:

```txt
mutation success
↓
invalidate list query
↓
invalidate detail query if relevant
↓
refresh table/detail immediately
```

No stale config table after save.

---

# Scope 7: Safety Constraints

Do NOT implement:

```txt
visual template designer
drag/drop pdf designer
advanced approval engine
parallel approval
conditional workflow
notification
report builder
dashboard changes
```

---

# Output

1. Files Added
2. Files Modified
3. Template Config UI Added
4. Approval Workflow UI Added
5. Document Sequence UI Added
6. API Routes Added
7. Permissions Added
8. Audit Integration
9. Remaining Risks
10. Task K Readiness

---

# Definition of Done

✔ Admin can manage template metadata

✔ Admin can manage template versions

✔ Admin can manage template mappings

✔ Admin can manage approval workflows

✔ Admin can manage approval steps

✔ Admin can manage document sequences

✔ Preview next document code works

✔ All mutations refresh table data

✔ All settings routes are organization scoped

✔ Permission guard works

✔ Audit works

✔ No drag/drop designer

✔ No advanced approval logic
