-- 创建文件表
CREATE TABLE file
(
    id            BIGSERIAL PRIMARY KEY,                              -- 主键ID，自动递增

    archive_id    BIGINT,                                             -- 关联档案表 archive.id（可选）
    original_name VARCHAR(255) NOT NULL,                              -- 原始文件名（用户上传时的名称）
    preview_url   TEXT,                                               -- 预览地址
    file_name     VARCHAR(255) NOT NULL,                              -- 存储系统中的唯一文件名（如 uuid.png）
    file_path     TEXT         NOT NULL,                              -- 文件存储路径或URL
    file_type     VARCHAR(50),                                        -- 文件类型（如：image/png, application/pdf）
    file_size     VARCHAR(50),                                              -- 文件大小（单位：字节）

    create_time   TIMESTAMP WITHOUT TIME ZONE, -- 上传时间，默认当前时间
    update_time   TIMESTAMP WITHOUT TIME ZONE, -- 最后更新时间，默认当前时间
    create_by     VARCHAR(255),                                       -- 上传人用户名
    update_by     VARCHAR(255),                                       -- 最后修改人用户名
    deleted       INT          NOT NULL    DEFAULT 0                  -- 软删除标志：0=未删除，1=已删除
);

-- 表注释
COMMENT ON TABLE file IS '上传文件的基本信息';

-- 字段注释
COMMENT ON COLUMN file.id IS '主键ID';
COMMENT ON COLUMN file.archive_id IS '关联的档案ID，外键引用 archive.id';
COMMENT ON COLUMN file.original_name IS '原始文件名（用户上传时的名称）';
COMMENT ON COLUMN file.preview_url IS '预览地址';
COMMENT ON COLUMN file.file_name IS '系统存储的唯一文件名';
COMMENT ON COLUMN file.file_path IS '文件在服务器上的存储路径或访问URL';
COMMENT ON COLUMN file.file_type IS '文件MIME类型，例如 image/png、application/pdf';
COMMENT ON COLUMN file.file_size IS '文件大小，单位为字节';
COMMENT ON COLUMN file.create_time IS '文件上传时间';
COMMENT ON COLUMN file.update_time IS '文件最后更新时间';
COMMENT ON COLUMN file.create_by IS '上传该文件的用户';
COMMENT ON COLUMN file.update_by IS '最后修改该文件的用户';
COMMENT ON COLUMN file.deleted IS '软删除标志，0=未删除，1=已删除';