From acd28e5debcb22c21f0c0ec300455714d7f65a68 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Sun, 5 Oct 2025 16:04:46 +0700 Subject: [PATCH] feat(FE-41): create warehouse api type --- src/types/api/master-data/warehouse.d.ts | 81 ++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/types/api/master-data/warehouse.d.ts diff --git a/src/types/api/master-data/warehouse.d.ts b/src/types/api/master-data/warehouse.d.ts new file mode 100644 index 00000000..41c5b1cd --- /dev/null +++ b/src/types/api/master-data/warehouse.d.ts @@ -0,0 +1,81 @@ +import { BaseMetadata, Override } from '@/types/api/api-general'; +import { BaseArea } from '@/types/api/master-data/area'; +import { BaseLocation } from '@/types/api/master-data/location'; +import { BaseKandang } from '@/types/api/master-data/kandang'; +import { BaseUser } from '@/types/api/master-data/user'; + +export type WarehouseType = 'AREA' | 'LOKASI' | 'KANDANG'; + +export type BaseWarehouse = { + id: number; + name: string; +}; + +export type BaseWarehouseArea = BaseWarehouse & { + type: 'AREA'; + area: BaseArea; +}; + +export type BaseWarehouseLocation = BaseWarehouse & { + type: 'LOKASI'; + area: BaseArea; + location: Override< + BaseLocation, + { + area: BaseArea | null; + } + >; +}; + +export type BaseWarehouseKandang = BaseWarehouse & { + type: 'KANDANG'; + area: BaseArea; + location: Override< + BaseLocation, + { + area: BaseArea | null; + } + >; + kandang: Override< + BaseKandang, + { + location: BaseLocation | null; + pic: BaseUser | null; + } + >; +}; + +export type Warehouse = BaseMetadata & + (BaseWarehouseArea | BaseWarehouseLocation | BaseWarehouseKandang); + +export type BaseCreateWarehousePayload = { + name: string; +}; + +export type BaseCreateWarehouseAreaPayload = BaseCreateWarehousePayload & { + type: 'AREA'; + area_id: number; +}; + +export type BaseCreateWarehouseLocationPayload = Override< + BaseCreateWarehouseAreaPayload, + { + type: 'LOKASI'; + location_id: number; + } +>; + +export type BaseCreateWarehouseKandangPayload = Override< + BaseCreateWarehouseLocationPayload, + { + type: 'KANDANG'; + kandang_id: number; + } +>; + +export type CreateWarehousePayload = + | BaseCreateWarehouseAreaPayload + | BaseCreateWarehouseLocationPayload + | BaseCreateWarehouseKandangPayload; + +export type UpdateWarehousePayload = CreateWarehousePayload;