/
romatur
/
rn-dev
Обзор
Документация
Войти
/
romatur
/
rn-dev
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
rn-dev-project-api/src/models/Documents.ts
213 строк
4 KB
Roman.Turusov
init
08 апр 2026, 23:35
08 апр 2026, 23:35
c780c58
Код
Авторство
О чём код?
import { Expose, Transform, Type } from 'class-transformer' import { InspectionAct } from './Files' import { Models } from '../' import { transformDqcSteps, transformPluSteps } from './transform/documents' export type DqcStatus = | 'new' | 'in_process' | 'closed' | 'finished' | 'assigned' export type StepStatus = 'created' | 'disabled' | 'active' | 'completed' export enum DocumentStepName { Transport = 'ts_step', Temperature = 'temp_step', Quality = 'quality_step', Result = 'result_step', } export type DocumentStepNameValues = (typeof DocumentStepName)[keyof typeof DocumentStepName] export class DocumentStep { @Expose() name!: DocumentStepNameValues @Expose() status!: StepStatus @Expose({ name: 'datetime_start' }) datetimeStart!: string | null @Expose({ name: 'datetime_changed' }) datetimeChanged!: string | null @Expose({ name: 'datetime_finished' }) datetimeFinished!: string | null } export type DocumentSteps = { ts: DocumentStep temp: DocumentStep quality: DocumentStep result: DocumentStep } export enum PluStepName { RNG = 'keygen', Outside = 'external_inspection', Main = 'main_inspection', Result = 'result', } export type PluStepNameValues = (typeof PluStepName)[keyof typeof PluStepName] export class PluStep { @Expose() name: PluStepNameValues @Expose() status: StepStatus @Expose({ name: 'datetime_start' }) datetimeStart!: string | null @Expose({ name: 'datetime_changed' }) datetimeChanged!: string | null @Expose({ name: 'datetime_finished' }) datetimeFinished!: string | null } export type PluSteps = { keygen: PluStep external: PluStep main: PluStep result: PluStep } export type PluMeins = 'KG' | 'ST' export class Plu { @Expose({ name: 'matnr' }) number: string @Expose({ name: 'maktx' }) nameOfProduct: string @Expose({ name: 'priemka' }) acceptanceType: Models.AcceptingTypeValues | null @Expose() tara: Models.SelectionTypeValues | null @Expose() quant: number | null @Expose({ name: 'paln' }) palletsNumber: number | null @Expose({ name: 'wgt_acc' }) acceptedNumber: number | null @Expose({ name: 'plu_steps' }) @Type(() => PluStep) @Transform(transformPluSteps) pluSteps: PluSteps @Expose() report: InspectionAct | null @Expose({ name: 'green_channel' }) greenChannel: boolean | null @Expose() estat: string | null @Expose({ name: 'main_estat' }) mainEstat: string | null @Expose() meins: PluMeins } export class Document { @Expose({ name: 'uuid' }) id: string @Expose({ name: 'docnm' }) dqcNumber: string @Expose({ name: 'dqc_status' }) dqcStatus: DqcStatus @Expose({ name: 'dqc_steps' }) @Type(() => DocumentStep) @Transform(transformDqcSteps) dqcSteps: DocumentSteps @Expose({ name: 'datetime_created' }) dateCreated: string @Expose({ name: 'datetime_start' }) dateStarted: string | null @Expose({ name: 'datetime_closed' }) dateClosed: string | null @Expose({ name: 'distribution_center' }) distributionCenter: string @Expose({ name: 'ebeln' }) deliveryOrder: string @Expose({ name: 'tn_num' }) consignmentNote: string | null @Expose({ name: 'lifnr_name' }) supplier: string @Expose() manager: string | null @Expose({ name: 'manager_uuid' }) managerId: string | null @Expose({ name: 'ts_num' }) transportNumber: string | null @Expose({ name: 'ts_trail' }) trailerNumber: string | null @Expose({ name: 'container_numb' }) containerNumber: string | null @Expose({ name: 'zsurv' }) isSurveyor: boolean | null @Expose({ name: 'sup_type' }) supplyType: string | null @Expose({ name: 'sup_name' }) supplyName: string | null @Expose({ name: 'plu_info' }) @Type(() => Plu) plus: Plu[] @Expose({ name: 'trust_on' }) trustOn: boolean } export class PatchDocumentStatus { @Expose({ name: 'current_user_id' }) currentUserId: string @Expose({ name: 'datetime_start' }) dateStarted: string | null @Expose({ name: 'datetime_finished' }) dateClosed: string | null @Expose({ name: 'step' }) @Type(() => DocumentStep) @Transform(transformDqcSteps, { groups: ['single_step'] }) dqcSteps: DocumentSteps @Expose({ name: 'dqc_status' }) dqcStatus: DqcStatus }