SQL
CREATE TABLE agent_voucher_sales (
id INTEGER PRIMARY KEY AUTOINCREMENT,
agent_id INTEGER NOT NULL,
voucher_code TEXT UNIQUE NOT NULL,
package_id TEXT NOT NULL,
package_name TEXT NOT NULL,
customer_phone TEXT,
customer_name TEXT,
price DECIMAL(10,2) NOT NULL,
commission DECIMAL(10,2) DEFAULT 0.00,
status TEXT DEFAULT 'active' CHECK (status IN ('active', 'used', 'expired', 'cancelled')),
sold_at DATETIME DEFAULT CURRENT_TIMESTAMP,
used_at DATETIME,
notes TEXT,
agent_price DECIMAL(10,2) DEFAULT 0.00,
commission_amount DECIMAL(10,2) DEFAULT 0.00,
FOREIGN KEY (agent_id) REFERENCES agents(id) ON DELETE CASCADE
)
Columns
| Column | Data type | Allow null | Primary key | Actions |
|---|---|---|---|---|
id |
INTEGER |
✓ | ✓ | Rename | Drop |
agent_id |
INTEGER |
Rename | Drop | ||
voucher_code |
TEXT |
Rename | Drop | ||
package_id |
TEXT |
Rename | Drop | ||
package_name |
TEXT |
Rename | Drop | ||
customer_phone |
TEXT |
✓ | Rename | Drop | |
customer_name |
TEXT |
✓ | Rename | Drop | |
price |
DECIMAL(10,2) |
Rename | Drop | ||
commission |
DECIMAL(10,2) |
✓ | Rename | Drop | |
status |
TEXT |
✓ | Rename | Drop | |
sold_at |
DATETIME |
✓ | Rename | Drop | |
used_at |
DATETIME |
✓ | Rename | Drop | |
notes |
TEXT |
✓ | Rename | Drop | |
agent_price |
DECIMAL(10,2) |
✓ | Rename | Drop | |
commission_amount |
DECIMAL(10,2) |
✓ | Rename | Drop |
Foreign Keys
| Column | Destination |
|---|---|
agent_id |
agents.id |
Indexes
| Name | Columns | Unique | SQL | Drop? |
|---|---|---|---|---|
| idx_agent_voucher_sales_agent_id |
agent_id
|
SQL | Drop | |
| idx_agent_voucher_sales_code |
voucher_code
|
SQL | Drop | |
| idx_agent_voucher_sales_status |
status
|
SQL | Drop | |
| sqlite_autoindex_agent_voucher_sales_1 |
voucher_code
|
✓ | SQL | Drop |