Code2Des テーブル
概要
1 件の Code2Des generation に対する、backend-owned lifecycle、Page Import source、Figma destination、result pointer、最初の成功 materialization record を保存します。
テーブル定義
| 論理名 | 物理名 | カラム名 | データ型 | 主キー | リレーション | ユニーク | NULL 許可 | デフォルト値 | 備考 |
|---|---|---|---|---|---|---|---|---|---|
| Code2Des | code2des | id | string | ◯ | Backend UUIDv7 (varchar(255))。API の code2desId および worker の code2des_id |
||||
| organization_id | number | organization:id | Organization scope。update/delete 時に cascade | ||||||
| project_id | number | project:id | Project scope。update/delete 時に cascade | ||||||
| page_import_id | string | page_import:id | Source Page Import (varchar(255))。Index は non-unique のため、1 件の capture を複数 job から利用可能 |
||||||
| figma_file_key | string | Plugin discovery destination (varchar(255)) |
|||||||
| screen_id | string | User-visible generated screen identity (varchar(255)) |
|||||||
| placement_target | string | ◯ | 任意の initial Figma placement context (varchar(255)) |
||||||
| status | enum | '0' |
code2des_status。型コード参照 |
||||||
| attempt | number | 1 |
Worker attempt fence (integer)。retry path を追加するまでは 1 固定 |
||||||
| nonce | string | Job ごとの callback/manifest correlation fence (varchar(255))。User API には公開しない |
|||||||
| result_url | string | ◯ | Native-Figma result または failure artifact pointer (varchar(1000)) |
||||||
| warning_count | number | ◯ | Deterministic conversion warning count (integer) |
||||||
| error_message | string | ◯ | Client に公開可能な terminal failure detail (text) |
||||||
| materialized_at | datetime | ◯ | 最初の成功 Figma root 作成時刻 | ||||||
| materialized_node_id | string | ◯ | 最初に作成成功した Figma root ID (varchar(255)) |
||||||
| created_at | datetime | CURRENT_TIMESTAMP |
Shared audit field | ||||||
| updated_at | datetime | CURRENT_TIMESTAMP |
Shared audit field | ||||||
| deleted_at | datetime | ◯ | Shared soft-delete field | ||||||
| created_by | string | Cognito subject または backend actor (varchar(50)) |
|||||||
| updated_by | string | Cognito subject または backend actor (varchar(50)) |
|||||||
| deleted_by | string | ◯ | Cognito subject または backend actor (varchar(50)) |
リレーション
organization_id→organization.id。update/delete 時に cascadeproject_id→project.id。update/delete 時に cascadepage_import_id→page_import.id。update/delete 時に cascade。Foreign-key index は non-unique
インデックス
- PRIMARY KEY (
id) - INDEX
code2des_page_import_idx(page_import_id) - INDEX
code2des_project_status_idx(project_id,status) - INDEX
code2des_org_project_file_status_idx(organization_id,project_id,figma_file_key,status)
型コード
Database enum は code2des_status です。
| 値 | 意味 |
|---|---|
'0' |
processing |
'1' |
completed。Result 取得/materialization が可能 |
'2' |
failed |
備考
- 各 trigger は既存の completed Page Import から新しい Code2Des row を作ります。したがって、再 generation でも以前の job と Figma node を保持します。
- Webhook は永続化された job の
id、attempt、nonceと一致する必要があり、database update は row が processing かつ non-deleted であることも要求します。 materialized_atとmaterialized_node_idは job の最初の成功 placement でのみ書き込みます。Placement の再 call は idempotent で、この root を上書きしません。- Lifecycle GET はこの row を control-plane metadata として返します。別の result GET が S3 artifact を検証し、S3 credential を公開せずに image bytes を hydrate します。