voucher/models/voucher_instance.json
yumoqing 2c56aa904a feat: 代金券模块初始实现
- 4张表: voucher_template, voucher_rule, voucher_instance, voucher_usage_log
- 可配置规则引擎: registry + validators + engine
- 8种内置规则: min_amount, max_amount, applicable_product_type,
  applicable_product, exclude_product, max_usage_count, valid_period, user_level
- CRUD定义 + API接口 + 前端页面
- SQL建表脚本 + RBAC权限配置
- 一次性使用,不找零
2026-05-29 00:28:01 +08:00

51 lines
2.6 KiB
JSON

{
"summary": [
{
"name": "voucher_instance",
"title": "代金券实例",
"primary": ["id"],
"catelog": "entity"
}
],
"fields": [
{"name": "id", "title": "主键ID", "type": "str", "length": 32, "nullable": "no"},
{"name": "template_id", "title": "模板ID", "type": "str", "length": 32, "nullable": "no"},
{"name": "customer_id", "title": "客户ID", "type": "str", "length": 32, "nullable": "no"},
{"name": "code", "title": "唯一券码", "type": "str", "length": 64, "nullable": "no"},
{"name": "status", "title": "状态", "type": "str", "length": 16, "nullable": "no", "default": "unused"},
{"name": "face_value", "title": "面值", "type": "double", "length": 10, "dec": 2, "nullable": "no"},
{"name": "actual_deducted", "title": "实际抵扣金额", "type": "double", "length": 10, "dec": 2, "nullable": "yes"},
{"name": "valid_from", "title": "生效时间", "type": "datetime", "nullable": "no"},
{"name": "valid_to", "title": "过期时间", "type": "datetime", "nullable": "no"},
{"name": "issued_at", "title": "发放时间", "type": "datetime", "nullable": "no"},
{"name": "used_at", "title": "使用时间", "type": "datetime", "nullable": "yes"},
{"name": "order_id", "title": "使用的订单ID", "type": "str", "length": 64, "nullable": "yes"},
{"name": "source", "title": "来源", "type": "str", "length": 32, "nullable": "yes"},
{"name": "remark", "title": "备注", "type": "str", "length": 255, "nullable": "yes"},
{"name": "created_at", "title": "创建时间", "type": "timestamp", "nullable": "no"},
{"name": "updated_at", "title": "更新时间", "type": "timestamp", "nullable": "no"}
],
"indexes": [
{"name": "idx_instance_code", "idxtype": "unique", "idxfields": ["code"]},
{"name": "idx_instance_customer", "idxtype": "index", "idxfields": ["customer_id"]},
{"name": "idx_instance_template", "idxtype": "index", "idxfields": ["template_id"]},
{"name": "idx_instance_status", "idxtype": "index", "idxfields": ["status"]},
{"name": "idx_instance_valid_to", "idxtype": "index", "idxfields": ["valid_to"]}
],
"codes": [
{
"field": "template_id",
"table": "voucher_template",
"valuefield": "id",
"textfield": "name"
},
{
"field": "status",
"table": "appcodes_kv",
"valuefield": "k",
"textfield": "v",
"cond": "parentid='voucher_instance_status'"
}
]
}