export enum ProjCodeType {
    CODE1 = 'CODE1'
}

export enum PayStatus {
    PAID = 'PAID',
    UNPAID = 'UNPAID'
}

export enum ProjStyleType {
    DEFAULT = 'DEFAULT'
}

export enum GenerateStatus {
    PENDING = 'PENDING',
    GENERATING = 'GENERATING',
    SUCCESS = 'SUCCESS',
    FAILED = 'FAILED',
    NONE = 'NONE',
    ERROR = 'ERROR'
}

export enum ProjChargeType {
    ALL = 'ALL',
    MATERIAL_AGENT = 'MATERIAL_AGENT',
    MATERIAL_AGENT_URGENT = 'MATERIAL_AGENT_URGENT',
    MATERIAL = 'MATERIAL',
    FREE = 'FREE',
}

export enum ProjAdditionalType {
    PKG = 'PKG',
    VIDEO_DEMO = 'VIDEO_DEMO'
}

export interface IProjCharge {
    proj: {
        all: number;
        materialAgent: number;
        materialAgentUrgent: number;
        material: number;
        free: number;
    },
    projTypes:[]
    additional: {
        pkg: number;
        videoDemo: number;
    }
}

export interface IProjGenerate {
    generateStatus: GenerateStatus;
}

export interface IProjPay {
    charge: string;
    gmtPay: string;
    payStatus: PayStatus;
    payment: number;
    chargeAdditionals: string;
}

/**
 * 项目模块
 */
export interface IProjMod {
    projModId: string;
    projId: string;
    projContext: string;
    modName: string;
    modDesc: string;
    modIcon: string;
    modContext: string;
    aiFieldStatus: string;
}

export interface IProj {
    img?:string
    projId: string,
    projName: string;
    projContext: string;
    projCodeType: ProjCodeType;
    projStyleType: ProjStyleType;
    previewUrl: string;
    gmtCreate: string;
    projModCount: number;
    projCategoryId: string;
    projCategoryName: string;

    generate: IProjGenerate;
    pay: IProjPay;
    
}
