import { Document } from 'mongoose'; import { IUser } from '../security'; import { ISAPEmployeeActivity } from './employee-activity.interface'; interface ISAPEmployeeSchema { number: string; name: string; lastName: string; rfc: string; curp: string; nss: string; address: ISAPAddress; periodicity: string; riskPlaced: string; birthDate: Date; gender: string; classification: ISAPEmployeeClassification; abkrs: string; typeRegimen: string; typeStatus: string; room: ISAPEmployeeRoom; position: ISAPEmployeePosition; function: ISAPEmployeeFunction; divisionCode: string; subDivisionCode: string; societyCode: string; department: ISAPEmployeeDepartment; direction: ISAPEmployeeDirection; ceco: ISAPEmployeeCeco; management: ISAPEmployeeManagement; directBossNumber: string; hiredAt: Date; leaveAt: Date; lastUpdateAt: Date; active: boolean; createdAt: Date; createdBy: string; updatedAt?: Date; updatedBy?: string; deletedAt?: Date; deletedBy?: string; } export interface ISAPEmployeeModel extends Document, ISAPEmployeeSchema { } export interface ISAPEmployee extends ISAPEmployeeSchema { _id?: string; activities: ISAPEmployeeActivity[]; directBoss: IUser; user: IUser; } export interface ISAPEmployeeFilter { _id?: string; number?: string; name?: string; lastName?: string; rfc?: string; curp?: string; nss?: string; periodicity?: string; riskPlaced?: string; birthDate?: Date; gender?: string; classificationCode?: string; abkrs?: string; typeRegimen?: string; typeStatus?: string; room?: string; roomCode?: string; position?: string; positionCode?: string; function?: string; functionCode?: string; divisionCode?: string; subDivisionCode?: string; societyCode?: string; department?: string; departmentCode?: string; direction?: string; directionCode?: string; ceco?: string; cecoCode?: string; management?: string; managementCode?: string; directBossNumber?: string; hiredAt?: Date; leaveAt?: Date; lastUpdateAt?: Date; active?: boolean; } export interface ISAPAddress { street: string; outdoorNumber: string; interiorNumber: string; suburb: string; locality: string; municipality: string; state: string; country: string; postalCode: string; } export interface ISAPEmployeeClassification { code: string; name: string; } export interface ISAPEmployeeRoom { code: string; name: string; } export interface ISAPEmployeePosition { code: string; name: string; } export interface ISAPEmployeeFunction { code: string; name: string; } export interface ISAPEmployeeDepartment { code: string; uni: string; name: string; } export interface ISAPEmployeeDirection { code: string; uni: string; name: string; } export interface ISAPEmployeeCeco { code: string; name: string; } export interface ISAPEmployeeManagement { code: string; uni: string; name: string; } export {};