Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
18 lines
1.3 KiB
JavaScript
18 lines
1.3 KiB
JavaScript
/**
|
|
* portal/ops/model.mjs — 운영자 고객 지원 영역의 표.
|
|
* support_access : 고객 지원용 일시 접근(§25): 대상·이유·만료·승인 기록. 허용 범위(scope_json) 안에서만 조회·변경할 수 있음을 화면에 보인다.
|
|
* ops_changes : 운영자가 고객 대신 바꾼 값의 변경 전후·사유·승인자(§26.2). 고객 감사 기록(audit_log)에도 같은 내용이 남는다.
|
|
*/
|
|
export const MIGRATIONS = [{ id: 'ops_0001', sql: `
|
|
CREATE TABLE IF NOT EXISTS support_access (
|
|
id TEXT PRIMARY KEY, group_id TEXT NOT NULL, target_type TEXT NOT NULL, target_id TEXT, reason TEXT NOT NULL, scope_json TEXT NOT NULL,
|
|
requested_by TEXT NOT NULL, approved_by TEXT, approved_at TEXT, created_at TEXT NOT NULL, expires_at TEXT NOT NULL, revoked_at TEXT, revoked_by TEXT, last_used_at TEXT
|
|
);
|
|
CREATE INDEX IF NOT EXISTS support_access_group ON support_access(group_id, expires_at);
|
|
CREATE TABLE IF NOT EXISTS ops_changes (
|
|
id TEXT PRIMARY KEY, group_id TEXT NOT NULL, subject_type TEXT NOT NULL, subject_id TEXT NOT NULL, field TEXT NOT NULL, before_json TEXT, after_json TEXT,
|
|
reason TEXT NOT NULL, operator TEXT NOT NULL, approver TEXT, created_at TEXT NOT NULL
|
|
);
|
|
CREATE INDEX IF NOT EXISTS ops_changes_group ON ops_changes(group_id, created_at);
|
|
` }];
|