using System.ComponentModel.DataAnnotations.Schema; namespace YLErp.DBModels { /// /// 客户授信出入表(R4 决策④):记录授信占用/释放/调整的全量变化。 /// 金额符号与资金流水同号(2026-08-20 业务确认):入金为负、出金为正; /// 已使用授信 = SUM(amount) 直接求和,可用授信 = 有效授信 − 已使用授信(入金使可用授信上升、出金使其收缩)。 /// change_type(占用/释放/调整)仅作分类审计;业务字段名一律小写下划线(兼容 PostgreSQL)。 /// [Table("client_credit_inout")] public class client_credit_inout : DBModelBaseV2 { /// /// 变更类型:占用(簿记授信部分) /// public const int ChangeTypeOccupy = 1; /// /// 变更类型:释放(平仓/到期按原标签返还) /// public const int ChangeTypeRelease = 2; /// /// 变更类型:人工调整(授信审批额度变化/特批后补记) /// public const int ChangeTypeAdjust = 3; /// /// 客户 /// public int client_id { get; set; } /// /// 关联预付金腿(swap_position.id,授信占用/释放绑定到那条腿;交易级占用/释放可为空) /// public long? position_id { get; set; } /// /// 关联交易(与 position_id 并存,冗余便于按交易查询;授信调整类可为空) /// public int? trade_id { get; set; } /// /// 变更类型 1=占用 2=释放 3=人工调整 /// public int change_type { get; set; } /// /// 变更金额:与资金流水同号(入金为负、出金为正);入金使可用授信上升、出金使其收缩 /// public double amount { get; set; } /// /// 变更后已使用授信(冗余快照,便于核对与报表) /// public double used_after { get; set; } /// /// 发生日期 /// public DateTime happen_date { get; set; } /// /// 备注(如"簿记拆单授信部分""平仓释放") /// public string remark { get; set; } // 基类操作人列为 PascalCase(其他存量表共用),本表全列小写下划线——override 并映射小写列名。 // 新建表约定:所有列一律小写下划线,基类继承列按此方式覆写。 /// 操作人ID(列 opt_id) [Column("opt_id")] public override int OptId { get; set; } /// 操作人名称(列 opt_name) [Column("opt_name")] public override string OptName { get; set; } /// 操作时间(列 opt_time) [Column("opt_time")] public override DateTime OptTime { get; set; } } }