mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 13:32:00 +00:00
chore(FE-147): use dummy data
This commit is contained in:
@@ -2,8 +2,594 @@ import { sleep } from '@/lib/helper';
|
||||
import { BaseApiService } from '@/services/api/base';
|
||||
import { BaseApiResponse } from '@/types/api/api-general';
|
||||
|
||||
import {
|
||||
CreateTransferToLayingPayload,
|
||||
TransferToLaying,
|
||||
UpdateTransferToLayingPayload,
|
||||
} from '@/types/api/production/transfer-to-laying';
|
||||
import { FlockWithKandangs } from '@/types/api/master-data/flock';
|
||||
|
||||
// TODO: delete this dummy data
|
||||
const GET_ALL_TRANSFER_TO_LAYING_DUMMY_DATA: BaseApiResponse<
|
||||
TransferToLaying[]
|
||||
> = {
|
||||
code: 200,
|
||||
status: 'success',
|
||||
message: 'Successfully get all transfer to laying data!',
|
||||
meta: {
|
||||
page: 1,
|
||||
limit: 10,
|
||||
total_pages: 1,
|
||||
total_results: 8,
|
||||
},
|
||||
data: [
|
||||
{
|
||||
id: 201,
|
||||
transfer_date: '2025-10-10',
|
||||
flock_source: { id: 1, name: 'Flock A' },
|
||||
flock_destination: { id: 10, name: 'Laying House 1' },
|
||||
quantity: 1200,
|
||||
kandangs: [
|
||||
{
|
||||
kandang: {
|
||||
id: 11,
|
||||
name: 'KDG-11',
|
||||
status: 'ACTIVE',
|
||||
location: {
|
||||
id: 101,
|
||||
name: 'Farm Alpha',
|
||||
address: 'Jl. Raya Alpha No. 1',
|
||||
area: { id: 1001, name: 'Area Utara' },
|
||||
},
|
||||
pic: {
|
||||
id: 501,
|
||||
id_user: 501,
|
||||
email: 'rina@farm.co',
|
||||
name: 'Rina Setiawan',
|
||||
},
|
||||
created_user: {
|
||||
id: 9001,
|
||||
id_user: 9001,
|
||||
email: 'admin@farm.co',
|
||||
name: 'System Admin',
|
||||
},
|
||||
created_at: '2025-09-01T08:00:00Z',
|
||||
updated_at: '2025-10-01T08:00:00Z',
|
||||
},
|
||||
quantity: 600,
|
||||
},
|
||||
{
|
||||
kandang: {
|
||||
id: 12,
|
||||
name: 'KDG-12',
|
||||
status: 'ACTIVE',
|
||||
location: {
|
||||
id: 101,
|
||||
name: 'Farm Alpha',
|
||||
address: 'Jl. Raya Alpha No. 1',
|
||||
area: { id: 1001, name: 'Area Utara' },
|
||||
},
|
||||
pic: {
|
||||
id: 502,
|
||||
id_user: 502,
|
||||
email: 'budi@farm.co',
|
||||
name: 'Budi Hartono',
|
||||
},
|
||||
created_user: {
|
||||
id: 9002,
|
||||
id_user: 9002,
|
||||
email: 'ops@farm.co',
|
||||
name: 'Ops Bot',
|
||||
},
|
||||
created_at: '2025-08-25T08:00:00Z',
|
||||
updated_at: '2025-09-20T08:00:00Z',
|
||||
},
|
||||
quantity: 600,
|
||||
},
|
||||
],
|
||||
reason: 'Start laying cycle',
|
||||
created_user: {
|
||||
id: 9100,
|
||||
id_user: 9100,
|
||||
email: 'planner@farm.co',
|
||||
name: 'Planning',
|
||||
},
|
||||
created_at: '2025-10-10T06:00:00Z',
|
||||
updated_at: '2025-10-10T06:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 202,
|
||||
transfer_date: '2025-10-11',
|
||||
flock_source: { id: 2, name: 'Flock B' },
|
||||
flock_destination: { id: 10, name: 'Laying House 1' },
|
||||
quantity: 950,
|
||||
kandangs: [
|
||||
{
|
||||
kandang: {
|
||||
id: 13,
|
||||
name: 'KDG-13',
|
||||
status: 'ACTIVE',
|
||||
location: {
|
||||
id: 102,
|
||||
name: 'Farm Beta',
|
||||
address: 'Jl. Melati 2',
|
||||
area: { id: 1002, name: 'Area Selatan' },
|
||||
},
|
||||
pic: {
|
||||
id: 503,
|
||||
id_user: 503,
|
||||
email: 'sari@farm.co',
|
||||
name: 'Sari Wulandari',
|
||||
},
|
||||
created_user: {
|
||||
id: 9003,
|
||||
id_user: 9003,
|
||||
email: 'system@farm.co',
|
||||
name: 'System',
|
||||
},
|
||||
created_at: '2025-09-05T08:00:00Z',
|
||||
updated_at: '2025-10-02T08:00:00Z',
|
||||
},
|
||||
quantity: 500,
|
||||
},
|
||||
{
|
||||
kandang: {
|
||||
id: 14,
|
||||
name: 'KDG-14',
|
||||
status: 'MAINTENANCE',
|
||||
location: {
|
||||
id: 102,
|
||||
name: 'Farm Beta',
|
||||
address: 'Jl. Melati 2',
|
||||
area: { id: 1002, name: 'Area Selatan' },
|
||||
},
|
||||
pic: {
|
||||
id: 504,
|
||||
id_user: 504,
|
||||
email: 'agus@farm.co',
|
||||
name: 'Agus Pratama',
|
||||
},
|
||||
created_user: {
|
||||
id: 9003,
|
||||
id_user: 9003,
|
||||
email: 'system@farm.co',
|
||||
name: 'System',
|
||||
},
|
||||
created_at: '2025-07-15T08:00:00Z',
|
||||
updated_at: '2025-09-15T08:00:00Z',
|
||||
},
|
||||
quantity: 450,
|
||||
},
|
||||
],
|
||||
reason: 'Capacity balancing',
|
||||
created_user: {
|
||||
id: 9101,
|
||||
id_user: 9101,
|
||||
email: 'planner@farm.co',
|
||||
name: 'Planning',
|
||||
},
|
||||
created_at: '2025-10-11T06:00:00Z',
|
||||
updated_at: '2025-10-11T06:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 203,
|
||||
transfer_date: '2025-10-12',
|
||||
flock_source: { id: 3, name: 'Flock C' },
|
||||
flock_destination: { id: 11, name: 'Laying House 2' },
|
||||
quantity: 1100,
|
||||
kandangs: [
|
||||
{
|
||||
kandang: {
|
||||
id: 21,
|
||||
name: 'KDG-21',
|
||||
status: 'ACTIVE',
|
||||
location: {
|
||||
id: 103,
|
||||
name: 'Farm Gamma',
|
||||
address: 'Dusun Gamma',
|
||||
area: { id: 1003, name: 'Area Timur' },
|
||||
},
|
||||
pic: {
|
||||
id: 505,
|
||||
id_user: 505,
|
||||
email: 'dewi@farm.co',
|
||||
name: 'Dewi Lestari',
|
||||
},
|
||||
created_user: {
|
||||
id: 9004,
|
||||
id_user: 9004,
|
||||
email: 'ops@farm.co',
|
||||
name: 'Ops Bot',
|
||||
},
|
||||
created_at: '2025-09-10T08:00:00Z',
|
||||
updated_at: '2025-10-05T08:00:00Z',
|
||||
},
|
||||
quantity: 700,
|
||||
},
|
||||
{
|
||||
kandang: {
|
||||
id: 22,
|
||||
name: 'KDG-22',
|
||||
status: 'ACTIVE',
|
||||
location: {
|
||||
id: 103,
|
||||
name: 'Farm Gamma',
|
||||
address: 'Dusun Gamma',
|
||||
area: { id: 1003, name: 'Area Timur' },
|
||||
},
|
||||
pic: {
|
||||
id: 506,
|
||||
id_user: 506,
|
||||
email: 'hadi@farm.co',
|
||||
name: 'Hadi Santoso',
|
||||
},
|
||||
created_user: {
|
||||
id: 9004,
|
||||
id_user: 9004,
|
||||
email: 'ops@farm.co',
|
||||
name: 'Ops Bot',
|
||||
},
|
||||
created_at: '2025-09-12T08:00:00Z',
|
||||
updated_at: '2025-10-06T08:00:00Z',
|
||||
},
|
||||
quantity: 400,
|
||||
},
|
||||
],
|
||||
reason: 'Align age group',
|
||||
created_user: {
|
||||
id: 9102,
|
||||
id_user: 9102,
|
||||
email: 'scheduler@farm.co',
|
||||
name: 'Scheduler',
|
||||
},
|
||||
created_at: '2025-10-12T06:00:00Z',
|
||||
updated_at: '2025-10-12T06:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 204,
|
||||
transfer_date: '2025-10-13',
|
||||
flock_source: { id: 1, name: 'Flock A' },
|
||||
flock_destination: { id: 12, name: 'Laying House 3' },
|
||||
quantity: 800,
|
||||
kandangs: [
|
||||
{
|
||||
kandang: {
|
||||
id: 15,
|
||||
name: 'KDG-15',
|
||||
status: 'ACTIVE',
|
||||
location: {
|
||||
id: 101,
|
||||
name: 'Farm Alpha',
|
||||
address: 'Jl. Raya Alpha No. 1',
|
||||
area: { id: 1001, name: 'Area Utara' },
|
||||
},
|
||||
pic: {
|
||||
id: 507,
|
||||
id_user: 507,
|
||||
email: 'nadia@farm.co',
|
||||
name: 'Nadia Putri',
|
||||
},
|
||||
created_user: {
|
||||
id: 9001,
|
||||
id_user: 9001,
|
||||
email: 'admin@farm.co',
|
||||
name: 'System Admin',
|
||||
},
|
||||
created_at: '2025-08-01T08:00:00Z',
|
||||
updated_at: '2025-09-28T08:00:00Z',
|
||||
},
|
||||
quantity: 800,
|
||||
},
|
||||
],
|
||||
reason: 'Open capacity in LH3',
|
||||
created_user: {
|
||||
id: 9103,
|
||||
id_user: 9103,
|
||||
email: 'opslead@farm.co',
|
||||
name: 'Ops Lead',
|
||||
},
|
||||
created_at: '2025-10-13T06:00:00Z',
|
||||
updated_at: '2025-10-13T06:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 205,
|
||||
transfer_date: '2025-10-14',
|
||||
flock_source: { id: 4, name: 'Flock D' },
|
||||
flock_destination: { id: 11, name: 'Laying House 2' },
|
||||
quantity: 650,
|
||||
kandangs: [
|
||||
{
|
||||
kandang: {
|
||||
id: 23,
|
||||
name: 'KDG-23',
|
||||
status: 'ACTIVE',
|
||||
location: {
|
||||
id: 104,
|
||||
name: 'Farm Delta',
|
||||
address: 'Jl. Delta 4',
|
||||
area: { id: 1004, name: 'Area Barat' },
|
||||
},
|
||||
pic: {
|
||||
id: 508,
|
||||
id_user: 508,
|
||||
email: 'yoga@farm.co',
|
||||
name: 'Yoga Prabowo',
|
||||
},
|
||||
created_user: {
|
||||
id: 9005,
|
||||
id_user: 9005,
|
||||
email: 'ops@farm.co',
|
||||
name: 'Ops Bot',
|
||||
},
|
||||
created_at: '2025-09-20T08:00:00Z',
|
||||
updated_at: '2025-10-10T08:00:00Z',
|
||||
},
|
||||
quantity: 350,
|
||||
},
|
||||
{
|
||||
kandang: {
|
||||
id: 24,
|
||||
name: 'KDG-24',
|
||||
status: 'ACTIVE',
|
||||
location: {
|
||||
id: 104,
|
||||
name: 'Farm Delta',
|
||||
address: 'Jl. Delta 4',
|
||||
area: { id: 1004, name: 'Area Barat' },
|
||||
},
|
||||
pic: {
|
||||
id: 509,
|
||||
id_user: 509,
|
||||
email: 'mega@farm.co',
|
||||
name: 'Mega Anggraini',
|
||||
},
|
||||
created_user: {
|
||||
id: 9005,
|
||||
id_user: 9005,
|
||||
email: 'ops@farm.co',
|
||||
name: 'Ops Bot',
|
||||
},
|
||||
created_at: '2025-09-21T08:00:00Z',
|
||||
updated_at: '2025-10-10T08:00:00Z',
|
||||
},
|
||||
quantity: 300,
|
||||
},
|
||||
],
|
||||
reason: 'Fill remaining LH2 slots',
|
||||
created_user: {
|
||||
id: 9104,
|
||||
id_user: 9104,
|
||||
email: 'scheduler@farm.co',
|
||||
name: 'Scheduler',
|
||||
},
|
||||
created_at: '2025-10-14T06:00:00Z',
|
||||
updated_at: '2025-10-14T06:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 206,
|
||||
transfer_date: '2025-10-15',
|
||||
flock_source: { id: 2, name: 'Flock B' },
|
||||
flock_destination: { id: 12, name: 'Laying House 3' },
|
||||
quantity: 720,
|
||||
kandangs: [
|
||||
{
|
||||
kandang: {
|
||||
id: 16,
|
||||
name: 'KDG-16',
|
||||
status: 'ACTIVE',
|
||||
location: {
|
||||
id: 102,
|
||||
name: 'Farm Beta',
|
||||
address: 'Jl. Melati 2',
|
||||
area: { id: 1002, name: 'Area Selatan' },
|
||||
},
|
||||
pic: {
|
||||
id: 510,
|
||||
id_user: 510,
|
||||
email: 'rizky@farm.co',
|
||||
name: 'Rizky Maulana',
|
||||
},
|
||||
created_user: {
|
||||
id: 9003,
|
||||
id_user: 9003,
|
||||
email: 'system@farm.co',
|
||||
name: 'System',
|
||||
},
|
||||
created_at: '2025-08-12T08:00:00Z',
|
||||
updated_at: '2025-10-01T08:00:00Z',
|
||||
},
|
||||
quantity: 420,
|
||||
},
|
||||
{
|
||||
kandang: {
|
||||
id: 17,
|
||||
name: 'KDG-17',
|
||||
status: 'ACTIVE',
|
||||
location: {
|
||||
id: 102,
|
||||
name: 'Farm Beta',
|
||||
address: 'Jl. Melati 2',
|
||||
area: { id: 1002, name: 'Area Selatan' },
|
||||
},
|
||||
pic: {
|
||||
id: 511,
|
||||
id_user: 511,
|
||||
email: 'tia@farm.co',
|
||||
name: 'Tia Safitri',
|
||||
},
|
||||
created_user: {
|
||||
id: 9003,
|
||||
id_user: 9003,
|
||||
email: 'system@farm.co',
|
||||
name: 'System',
|
||||
},
|
||||
created_at: '2025-08-18T08:00:00Z',
|
||||
updated_at: '2025-10-01T08:00:00Z',
|
||||
},
|
||||
quantity: 300,
|
||||
},
|
||||
],
|
||||
reason: 'Stage-by-stage transfer',
|
||||
created_user: {
|
||||
id: 9105,
|
||||
id_user: 9105,
|
||||
email: 'opslead@farm.co',
|
||||
name: 'Ops Lead',
|
||||
},
|
||||
created_at: '2025-10-15T06:00:00Z',
|
||||
updated_at: '2025-10-15T06:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 207,
|
||||
transfer_date: '2025-10-16',
|
||||
flock_source: { id: 5, name: 'Flock E' },
|
||||
flock_destination: { id: 10, name: 'Laying House 1' },
|
||||
quantity: 500,
|
||||
kandangs: [
|
||||
{
|
||||
kandang: {
|
||||
id: 18,
|
||||
name: 'KDG-18',
|
||||
status: 'ACTIVE',
|
||||
location: {
|
||||
id: 105,
|
||||
name: 'Farm Epsilon',
|
||||
address: 'Kp. Epsilon',
|
||||
area: { id: 1005, name: 'Area Tengah' },
|
||||
},
|
||||
pic: {
|
||||
id: 512,
|
||||
id_user: 512,
|
||||
email: 'lukas@farm.co',
|
||||
name: 'Lukas Aditya',
|
||||
},
|
||||
created_user: {
|
||||
id: 9006,
|
||||
id_user: 9006,
|
||||
email: 'ops@farm.co',
|
||||
name: 'Ops Bot',
|
||||
},
|
||||
created_at: '2025-09-01T08:00:00Z',
|
||||
updated_at: '2025-10-12T08:00:00Z',
|
||||
},
|
||||
quantity: 250,
|
||||
},
|
||||
{
|
||||
kandang: {
|
||||
id: 19,
|
||||
name: 'KDG-19',
|
||||
status: 'ACTIVE',
|
||||
location: {
|
||||
id: 105,
|
||||
name: 'Farm Epsilon',
|
||||
address: 'Kp. Epsilon',
|
||||
area: { id: 1005, name: 'Area Tengah' },
|
||||
},
|
||||
pic: {
|
||||
id: 513,
|
||||
id_user: 513,
|
||||
email: 'maya@farm.co',
|
||||
name: 'Maya Kartika',
|
||||
},
|
||||
created_user: {
|
||||
id: 9006,
|
||||
id_user: 9006,
|
||||
email: 'ops@farm.co',
|
||||
name: 'Ops Bot',
|
||||
},
|
||||
created_at: '2025-09-03T08:00:00Z',
|
||||
updated_at: '2025-10-12T08:00:00Z',
|
||||
},
|
||||
quantity: 250,
|
||||
},
|
||||
],
|
||||
reason: 'Trial batch',
|
||||
created_user: {
|
||||
id: 9106,
|
||||
id_user: 9106,
|
||||
email: 'planner@farm.co',
|
||||
name: 'Planning',
|
||||
},
|
||||
created_at: '2025-10-16T06:00:00Z',
|
||||
updated_at: '2025-10-16T06:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 208,
|
||||
transfer_date: '2025-10-17',
|
||||
flock_source: { id: 6, name: 'Flock F' },
|
||||
flock_destination: { id: 13, name: 'Laying House 4' },
|
||||
quantity: 1300,
|
||||
kandangs: [
|
||||
{
|
||||
kandang: {
|
||||
id: 25,
|
||||
name: 'KDG-25',
|
||||
status: 'ACTIVE',
|
||||
location: {
|
||||
id: 106,
|
||||
name: 'Farm Zeta',
|
||||
address: 'Jl. Zeta 6',
|
||||
area: { id: 1006, name: 'Area Tenggara' },
|
||||
},
|
||||
pic: {
|
||||
id: 514,
|
||||
id_user: 514,
|
||||
email: 'rara@farm.co',
|
||||
name: 'Rara Pertiwi',
|
||||
},
|
||||
created_user: {
|
||||
id: 9007,
|
||||
id_user: 9007,
|
||||
email: 'ops@farm.co',
|
||||
name: 'Ops Bot',
|
||||
},
|
||||
created_at: '2025-09-07T08:00:00Z',
|
||||
updated_at: '2025-10-13T08:00:00Z',
|
||||
},
|
||||
quantity: 700,
|
||||
},
|
||||
{
|
||||
kandang: {
|
||||
id: 26,
|
||||
name: 'KDG-26',
|
||||
status: 'ACTIVE',
|
||||
location: {
|
||||
id: 106,
|
||||
name: 'Farm Zeta',
|
||||
address: 'Jl. Zeta 6',
|
||||
area: { id: 1006, name: 'Area Tenggara' },
|
||||
},
|
||||
pic: {
|
||||
id: 515,
|
||||
id_user: 515,
|
||||
email: 'doni@farm.co',
|
||||
name: 'Doni Firmansyah',
|
||||
},
|
||||
created_user: {
|
||||
id: 9007,
|
||||
id_user: 9007,
|
||||
email: 'ops@farm.co',
|
||||
name: 'Ops Bot',
|
||||
},
|
||||
created_at: '2025-09-09T08:00:00Z',
|
||||
updated_at: '2025-10-13T08:00:00Z',
|
||||
},
|
||||
quantity: 600,
|
||||
},
|
||||
],
|
||||
reason: 'Open new house',
|
||||
created_user: {
|
||||
id: 9107,
|
||||
id_user: 9107,
|
||||
email: 'scheduler@farm.co',
|
||||
name: 'Scheduler',
|
||||
},
|
||||
created_at: '2025-10-17T06:00:00Z',
|
||||
updated_at: '2025-10-17T06:00:00Z',
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
// TODO: delete this dummy data
|
||||
const FLOCK_SOURCE_DUMMY_DATA: BaseApiResponse<FlockWithKandangs[]> = {
|
||||
code: 200,
|
||||
@@ -149,15 +735,26 @@ const FLOCK_SOURCE_DUMMY_DATA: BaseApiResponse<FlockWithKandangs[]> = {
|
||||
],
|
||||
};
|
||||
|
||||
export class TransferToLayingService<
|
||||
T,
|
||||
CreatePayloadGeneric,
|
||||
UpdatePayloadGeneric
|
||||
> extends BaseApiService<T, CreatePayloadGeneric, UpdatePayloadGeneric> {
|
||||
export class TransferToLayingService extends BaseApiService<
|
||||
TransferToLaying,
|
||||
CreateTransferToLayingPayload,
|
||||
UpdateTransferToLayingPayload
|
||||
> {
|
||||
constructor(basePath: string = '') {
|
||||
super(basePath);
|
||||
}
|
||||
|
||||
// TODO: remove dummy data and integrate to real API
|
||||
override async getAllFetcher(
|
||||
endpoint: string
|
||||
): Promise<BaseApiResponse<TransferToLaying[]>> {
|
||||
// return await httpClientFetcher<BaseApiResponse<T[]>>(endpoint);
|
||||
|
||||
await sleep(750);
|
||||
|
||||
return GET_ALL_TRANSFER_TO_LAYING_DUMMY_DATA;
|
||||
}
|
||||
|
||||
// TODO: remove dummy data and integrate to real API
|
||||
async getFlockSource(): Promise<
|
||||
BaseApiResponse<FlockWithKandangs[]> | undefined
|
||||
@@ -178,10 +775,54 @@ export class TransferToLayingService<
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: remove dummy data and integrate to real API
|
||||
async bulkApprove(
|
||||
ids: number[]
|
||||
): Promise<BaseApiResponse<{ message: string }> | undefined> {
|
||||
try {
|
||||
await sleep(750);
|
||||
|
||||
return {
|
||||
code: 200,
|
||||
status: 'success',
|
||||
message: 'Berhasil approve data transfer ke laying!',
|
||||
data: {
|
||||
message: 'Berhasil approve data transfer ke laying!',
|
||||
},
|
||||
};
|
||||
} catch (error) {
|
||||
// if (axios.isAxiosError<BaseApiResponse<T>>(error)) {
|
||||
// return error.response?.data;
|
||||
// }
|
||||
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: remove dummy data and integrate to real API
|
||||
async bulkReject(
|
||||
ids: number[]
|
||||
): Promise<BaseApiResponse<{ message: string }> | undefined> {
|
||||
try {
|
||||
await sleep(750);
|
||||
|
||||
return {
|
||||
code: 200,
|
||||
status: 'success',
|
||||
message: 'Berhasil reject data transfer ke laying!',
|
||||
data: {
|
||||
message: 'Berhasil reject data transfer ke laying!',
|
||||
},
|
||||
};
|
||||
} catch (error) {
|
||||
// if (axios.isAxiosError<BaseApiResponse<T>>(error)) {
|
||||
// return error.response?.data;
|
||||
// }
|
||||
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const TransferToLayingApi = new TransferToLayingService<
|
||||
unknown,
|
||||
unknown,
|
||||
unknown
|
||||
>('');
|
||||
export const TransferToLayingApi = new TransferToLayingService('');
|
||||
|
||||
Reference in New Issue
Block a user