166 lines
4.5 KiB
Python
Raw Normal View History

# _*_ coding : UTF-8 _*_
# @Time : 2025/03/24 02:29:03
# @UpdateTime : 2025/03/24 02:29:03
# @Author : sonder
# @File : hts.py
# @Comment : 本程序用于海关编码税率模型
from tortoise import fields
from models.common import BaseModel
class Version(BaseModel):
"""
版本信息模型
"""
version = fields.CharField(max_length=255, description="版本号", source_field="version")
"""
版本号
- 最大长度为 255 个字符
- 映射到数据库字段 version
"""
date = fields.CharField(max_length=255,description="版本日期", source_field="date")
"""
版本日期
- 映射到数据库字段 date
"""
url = fields.CharField(max_length=255, description="下载地址", source_field="url")
"""
下载地址
- 最大长度为 255 个字符
- 映射到数据库字段 url
"""
class Meta:
table = "version"
table_description = "版本信息"
class HtsClass(BaseModel):
"""
编码类信息模型
"""
class_name = fields.TextField(description="类名", source_field="class_name")
"""
类名
- 映射到数据库字段 class_name
"""
class_description = fields.TextField(description="类描述", source_field="class_description")
"""
类描述
- 映射到数据库字段 class_description
"""
chapter_name = fields.TextField(description="章节", source_field="chapter_name")
"""
章节
- 映射到数据库字段 chapter_name
"""
chapter_description = fields.TextField(description="章节描述", source_field="chapter_description")
"""
章节描述
- 映射到数据库字段 chapter_description
"""
class Meta:
table = "hts_class"
table_description = "编码类信息"
class HtsItem(BaseModel):
"""
编码项信息模型
"""
parent_id = fields.CharField(max_length=255, null=True, description="父编码", source_field="parent_id")
"""
父编码
- 最大长度为 255 个字符
- 映射到数据库字段 parent_id
- 可为空
"""
htsno = fields.CharField(max_length=255, description="编码", source_field="htsno")
"""
编码
- 最大长度为 255 个字符
- 映射到数据库字段 htsno
"""
indent = fields.IntField(description="层级",null=True, source_field="indent")
"""
缩进
- 映射到数据库字段 indent
"""
description = fields.TextField(description="描述",null=True, source_field="description")
"""
描述
- 映射到数据库字段 description
"""
units = fields.JSONField(description="单位列表", null=True, source_field="units")
"""
单位列表
- 映射到数据库字段 units
"""
general = fields.TextField(description="通用税率",null=True, source_field="general")
"""
通用税率
- 最大长度为 50 个字符
- 映射到数据库字段 general
"""
special = fields.TextField(description="特殊税率,适用于特定国家或地区",null=True, source_field="special")
"""
特殊税率适用于特定国家或地区
- 最大长度为 255 个字符
- 映射到数据库字段 special
"""
other = fields.TextField(description="其他税率",null=True, source_field="other")
"""
其他税率
- 最大长度为 50 个字符
- 映射到数据库字段 other
"""
quota_quantity = fields.TextField(description="配额数量", null=True, source_field="quota_quantity")
"""
配额数量
- 最大长度为 50 个字符
- 映射到数据库字段 quota_quantity
"""
additional_duties = fields.TextField(description="附加税",null=True, source_field="additional_duties")
"""
附加税
- 最大长度为 50 个字符
- 映射到数据库字段 additional_duties
"""
footnotes = fields.JSONField(null=True, description="脚注列表", source_field="footnotes")
"""
脚注列表
- 映射到数据库字段 footnotes
- 可为空
"""
class_ = fields.ForeignKeyField("models.HtsClass", related_name="class_items", on_delete=fields.CASCADE,
description="所属类", source_field="class_id")
version = fields.ForeignKeyField("models.Version", related_name="version_items", on_delete=fields.CASCADE,
description="所属版本", source_field="version_id")
class Meta:
table = "hts_item"
table_description = "编码项信息"