Web Menus (Menu Builder)
Overview
This domain has a single table, menu_builder, which stores the web menu definition for each
LINE OA. The entire menu structure is kept as JSONB in the config column and is exposed
publicly through public_token. The table uses soft delete via deleted_at
Table menu_builder
| Column | Type | Nullable | Default | Description |
|---|---|---|---|---|
id | SERIAL | NO | nextval(...) | Primary key |
name | VARCHAR(255) | NO | - | Menu name |
config | JSONB | NO | - | Full menu structure and settings |
public_token | VARCHAR(255) | YES | - | Token for opening the menu publicly (unique) |
line_oa_id | INTEGER | NO | - | LINE OA the menu belongs to (FK to line_oa.id) |
status | CommonStatus (ENUM) | NO | active | Menu status |
created_by | INTEGER | NO | - | Creator (user id) |
updated_by | INTEGER | YES | - | Last updater (user id) |
created_at | TIMESTAMPTZ(3) | NO | now() | Creation timestamp |
updated_at | TIMESTAMPTZ(3) | NO | now() | Last update timestamp |
deleted_at | TIMESTAMPTZ(3) | YES | - | Deletion timestamp (soft delete) |
Notes
line_oa_idis a FK toline_oa.id— every menu must be bound to a LINE OA (NOT NULL)public_tokenhas a unique constraint and is the key used to open the menu page from its public link- Indexes exist on
line_oa_id,statusandcreated_atto support listing menus per OA with status filtering and creation-date ordering - Deletion is soft (
deleted_at) alongsidestatus— the row remains in the table