import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, Index, VersionColumn } from 'typeorm';

@Entity('platform_accounts')
export class PlatformAccount {
  @PrimaryGeneratedColumn({ type: 'bigint', unsigned: true })
  id: number;

  @Column({ type: 'varchar', length: 50, comment: '账户名称（如：主账户、备用账户）' })
  account_name: string;

  @Column({ type: 'decimal', precision: 12, scale: 2, default: 0, comment: '可用余额' })
  balance: number;

  @Column({ type: 'decimal', precision: 12, scale: 2, default: 0, comment: '冻结余额（提现中）' })
  frozen_balance: number;

  @Column({ type: 'decimal', precision: 12, scale: 2, default: 0, comment: '累计收入（订单收入）' })
  total_income: number;

  @Column({ type: 'decimal', precision: 12, scale: 2, default: 0, comment: '累计支出（商家结算+退款）' })
  total_expense: number;

  @Column({ type: 'decimal', precision: 12, scale: 2, default: 0, comment: '累计服务费收入' })
  total_service_fee: number;

  @VersionColumn({ comment: '乐观锁版本号' })
  version: number;

  @Column({
    type: 'enum',
    enum: ['active', 'frozen', 'closed'],
    default: 'active',
    comment: '状态'
  })
  @Index()
  status: 'active' | 'frozen' | 'closed';

  @CreateDateColumn({ comment: '创建时间' })
  created_at: Date;

  @UpdateDateColumn({ comment: '更新时间' })
  updated_at: Date;
}
