import { Id, LiquidacionRule } from "@win2win/shared";

export interface Liquidacion {
    ID_LIQUIDACION: Id;
    ESTADO: number;
    FECHA_PREVISION: Date;
    FECHA_SOLICITADO: null;
    PERIODO: LiquidacionPeriodo;
    ITEMS: { ID_LIQUIDACION_ITEM: number }[];
    GERENCIA: {
        ID_GERENCIA: number;
        NOMBRE: string;
    };
    DELEGACION: {
        ID_DELEGACION: number;
        NOMBRE: string;
    };
    SITUACION: Situacion;
    RECLAMOS: LiquidacionReclamo[];
}
export interface LiquidacionPeriodo {
    FECHA_DESDE: Date;
    FECHA_HASTA: Date;
}
export interface LiquidacionReclamo {
    ID_LIQUIDACION_RECLAMO: number;
    ESTADO_RECLAMO: string;
}

export interface Situacion {
    NOMBRE: string;
}


export interface LiquidacionItem {
    ID_LIQUIDACION_ITEM: number;
    ID_LIQUIDACION: number;
    ID_PEDIDO: number;
    ID_ORGANIZADOR: number;
    ID_GERENTE: number;
    ID_SUPERVISOR: number;
    ID_ESTRATEGIA: number;
    ID_PROMOTOR: number;
    ID_SITUACION: number;
    ID_COMISION_DET: number;
    FECHA_CONFIRMADO: Date;
    FECHA_LIQUIDADO: Date;
    CONCEPTO: string;
    ORGANIZADOR: number;
    GERENTE: number;
    SUPERVISOR: number;
    PROMOTOR: number;
    OVER1: number;
    OVER2: number;
    OVER3: number;
    OVER4: number;
    OVER5: number;
    BOLSA: number;
}

export interface LiquidacionLayoutRaw {
    ID_LIQUIDACION_LAY: number;
    TITULO: string;
    ESTRUCTURA: object;
    ESTADO: LiquidacionLayEstado;
    VERSION: number;
    FECHA_CREADO: Date;
}

export interface LiquidacionLayout {
    id: number,
    titulo: string,
    estructura: LiquidacionRule[],
    estado: LiquidacionLayEstado,
    version: number,
    fecha_creado: Date
    id_situacion: number
    operador_raiz?: 'AND' | 'OR'
}

export enum LiquidacionLayEstado {
    PENDIENTE = 0,
    VALIDADA = 1
}

export interface Comision {
    ID_COMISION: number;
    FECHA_DESDE: Date;
    FECHA_HASTA: Date;
    GERENCIA: any;
    DELEGACION: any
    PRODUCTO: { ID_PRODUCTO: number, NOMBRE: string };
    R_COMISION_DET: { ID_COMISION_DET: number }[];
}