import { type IType, PrimaryKeyProp, defineEntity, p } from '@mikro-orm/core';

export class ScsResourceconvert {
  [PrimaryKeyProp]?: 'Id';
  Id!: IType<number, bigint>;
  SourceResourceId!: IType<number, bigint>;
  ResourcePath?: string;
  ConvertStatus!: number;
  ResourceType!: number;
  TargetType!: number;
  ConvertedResourcePathPrefix?: string;
  Number!: number;
  FailMessage?: string;
  Revision!: number;
  CreatedBy?: IType<number, bigint>;
  CreatedTime!: Date;
  UpdatedBy?: IType<number, bigint>;
  UpdatedTime?: Date;
  IsDeleted!: unknown;
}

export const ScsResourceconvertSchema = defineEntity({
  class: ScsResourceconvert,
  comment: '资源转换',
  properties: {
    Id: p.bigint().primary().name('Id').columnType('bigint').unsigned(false).autoincrement(false).comment('主键Id'),
    SourceResourceId: p.bigint().name('SourceResourceId').columnType('bigint').comment('原资源id'),
    ResourcePath: p.string().name('ResourcePath').length(1000).nullable().comment('资源路径'),
    ConvertStatus: p.integer().name('ConvertStatus').comment('转换状态;1默认 2转换任务成功 -2转换任务失败 3转换成功 -3转换失败'),
    ResourceType: p.integer().name('ResourceType').comment('资源类型'),
    TargetType: p.integer().name('TargetType').comment('目标类型;目前是1-png'),
    ConvertedResourcePathPrefix: p.string().name('ConvertedResourcePathPrefix').nullable().comment('转换后的路径前缀,假设是目录 尾缀带有/'),
    Number: p.integer().name('Number').comment('转换之后文件夹文件数量'),
    FailMessage: p.string().name('FailMessage').nullable().comment('转换失败信息'),
    Revision: p.integer().name('Revision').comment('乐观锁'),
    CreatedBy: p.bigint().name('CreatedBy').columnType('bigint').nullable().comment('创建者用户Id'),
    CreatedTime: p.datetime().name('CreatedTime').length(3).comment('创建时间'),
    UpdatedBy: p.bigint().name('UpdatedBy').columnType('bigint').nullable().comment('修改者用户Id'),
    UpdatedTime: p.datetime().name('UpdatedTime').length(3).nullable().comment('修改时间'),
    IsDeleted: p.array().name('IsDeleted').comment('是否删除'),
  },
});
