DROP TABLE IF EXISTS supply;

CREATE TABLE supply
(
    id               BIGSERIAL PRIMARY KEY,
    supplier_name    VARCHAR(255) NOT NULL,                              -- 供应商名称
    taxpayer_id      VARCHAR(255) NOT NULL,                              -- 纳税人识别号
    business_address VARCHAR(255) NOT NULL    DEFAULT '',                -- 经营地址
    bank_account     VARCHAR(255) NOT NULL    DEFAULT '',                -- 银行账号
    bank_name        VARCHAR(255) NOT NULL    DEFAULT '',                -- 开户行
    contact_person   VARCHAR(255) NOT NULL    DEFAULT '',                -- 联系人
    contact_address  VARCHAR(255) NOT NULL    DEFAULT '',                -- 联系地址
    b_province_id    BIGINT       NOT NULL    DEFAULT 0,                 -- 经营地址省id
    b_city_id        BIGINT       NOT NULL    DEFAULT 0,                 -- 经营地址市id
    b_district_id    BIGINT       NOT NULL    DEFAULT 0,                 -- 经营地址区id
    c_province_id    BIGINT       NOT NULL    DEFAULT 0,                 -- 联系地址省id
    c_city_id        BIGINT       NOT NULL    DEFAULT 0,                 -- 联系地址市id
    c_district_id    BIGINT       NOT NULL    DEFAULT 0,                 -- 联系地址区id
    deleted          int4         NOT NULL    DEFAULT 0,                 -- 是否删除（软删除标志）
    create_by        VARCHAR(255),                                       -- 创建人
    create_time      TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, -- 创建时间，默认当前时间
    update_by        VARCHAR(255),                                       -- 最后更新人
    update_time      TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, -- 最后更新时间，默认当前时间
    contact_phone    VARCHAR(255)                                        -- 联系人电话
);

-- 表注释：供应商信息表，存储供应商基本信息（含地址层级关联）
COMMENT ON TABLE supply IS '供应商信息表';

-- 字段注释：主键（自增大整数）
COMMENT ON COLUMN supply.id IS '供应商唯一标识，采用BIGSERIAL自增主键，确保数据唯一性';

-- 供应商名称（非空）
COMMENT ON COLUMN supply.supplier_name IS '供应商全称，业务场景中唯一识别的名称，';

-- 纳税人识别号（非空）
COMMENT ON COLUMN supply.taxpayer_id IS '供应商税务登记唯一标识（如统一社会信用代码），用于财税管理';

-- 经营地址（默认空字符串，非空）
COMMENT ON COLUMN supply.business_address IS '供应商营业执照注册地址或主要经营场所，默认空字符串';

-- 银行账号（默认空字符串，非空）
COMMENT ON COLUMN supply.bank_account IS '供应商收款银行账户信息，默认空字符串，用于资金往来';

-- 开户行（默认空字符串，非空）
COMMENT ON COLUMN supply.bank_name IS '供应商银行账户的开户机构名称，默认空字符串，';

-- 联系人（默认空字符串，非空）
COMMENT ON COLUMN supply.contact_person IS '供应商业务对接人姓名';

-- 联系地址（默认空字符串，非空）
COMMENT ON COLUMN supply.contact_address IS '供应商联系人的联系地址';

-- 省份ID（默认0，非空，关联地址字典）
COMMENT ON COLUMN supply.b_province_id IS '供应商所在省份的ID（关联地址字典表），默认0';

-- 城市ID（默认0，非空，关联地址字典）
COMMENT ON COLUMN supply.b_city_id IS '供应商所在城市的ID（关联地址字典表），默认0';

-- 区县ID（默认0，非空，关联地址字典）
COMMENT ON COLUMN supply.b_district_id IS '供应商所在区县的ID（关联地址字典表），默认0，用于地址层级划分';

COMMENT ON COLUMN supply.deleted IS '软删除标志，true表示已删除';
COMMENT ON COLUMN supply.create_by IS '创建人用户名';
COMMENT ON COLUMN supply.create_time IS '记录创建时间';
COMMENT ON COLUMN supply.update_by IS '最后更新人用户名';
COMMENT ON COLUMN supply.update_time IS '记录最后更新时间';

