vat_wms/resources/js/interfaces/interfaces.tsx

314 lines
7.4 KiB
TypeScript

import {colors} from "@material-tailwind/react/types/generic";
export interface ShipmentRequest {
id: number;
shipment_reference: string;
note: string;
user_id: number,
delivery_address_name: string;
delivery_address_company_name: string | null;
delivery_address_street_name: string;
delivery_address_street_number: string;
delivery_address_city: string;
delivery_address_zip: string;
delivery_address_state_iso: string | null;
delivery_address_country_iso: string;
pickup_point_code: string | null;
postnummer: string | null;
contact_email: string;
contact_telephone: string;
cod_value: string | null;
cod_variable_symbol: string | null;
shipment_value: string;
currency: string;
weight: string;
height: number;
width: number;
length: number;
carrier: Carrier;
package_type: string;
created_at: Date;
updated_at: Date;
delivery_address: DeliveryAddress;
shipment: Shipment;
current_shipment_status: ShipmentStatusHistory;
shipment_statuses: ShipmentStatusHistory[],
user: User;
batch: Batch;
items: Item[];
shipment_price: number;
}
export interface Item {
id: number;
shipment_request_id: number;
name: string;
item_note: string | null;
model_number: string;
HSCode: string;
price: string;
quantity: number;
originCountry: string;
weight: string;
item_id_internal_warehouse: number;
item_id_external: number;
created_at: string;
updated_at: string;
imageUrl: string;
}
interface Shipment {
id: number;
user_id: number;
shipment_request_id: number;
internal_shipment_id: string;
shipment_id: string;
tracking_number: string;
created_at: string;
updated_at: string;
}
export interface ShipmentStatusHistory {
id: number;
shipment_status_id: number;
shipment_id: number;
status_note: string;
shipment_status: ShipmentStatus;
}
export interface ShipmentStatus {
id: number;
name: string;
description: string;
}
export interface DeliveryAddress {
name: string;
companyName: string | null;
streetName: string;
streetNumber: string;
city: string;
zip: string;
stateISO: string | null;
countryISO: string;
}
export interface Batch {
carrier_master: CarrierMaster;
id: number;
user: User;
item_count: number;
error_count: number;
created_at: string;
updated_at: string;
processed: boolean;
printed: boolean;
shipment_request: ShipmentRequest;
latest_generated_file: File;
}
export interface Error {
id: number;
shipment_request_id: number;
fetched: boolean;
error_message: string;
created_at: string;
updated_at: string;
}
export interface ErrorObject {
error: Error;
shipment_request: ShipmentRequest;
batch_id: number;
}
export interface CarrierMaster {
id: number;
display_name: string;
shortname: string;
img: string;
api_url: string;
api_url_sandbox: string;
label_reprint: boolean;
carrier_enabled: boolean;
carriers: Carrier[]
}
export interface Carrier {
id: number;
internal: string;
ext_id: string;
carrier_name: string;
carrier_shortname: string;
pickup_points: boolean;
carrier_contract: string; // Adjust the type if necessary
customs_declarations: boolean; // Adjust the type if necessary
cod_allowed: boolean;
cod_enabled: boolean;
cod_price: string; // Adjust the type if necessary
country: string;
zone_id: number;
currency: string;
img: string;
enabled_store: boolean;
shipping_price: string; // Adjust the type if necessary
free_shipping_enabled: boolean;
delivery_time: string; // Adjust the type if necessary
display_order: number;
api_allowed: boolean;
carrier_master: CarrierMaster;
base_pricing: CarrierBasePricing;
}
export interface AlertState {
show: boolean;
message: React.ReactNode;
color: colors;
pdfUrl: string;
file_id: number;
filename: string;
}
export interface UserDetails {
user_id: number;
apiCallbackURL: string | null;
imageURL: string | null;
callbacks_enabled: boolean;
carrier_pricings?: UserCarrierPricing[]; // Adjusted to match model and JSON data
}
export interface User {
id: number;
name: string;
email: string;
details?: UserDetails;
}
export interface UserCarrierPricing {
id: number;
user_id: number;
carrier_id: number;
cod_price?: number;
carrier?: Carrier; // Relationship to Carrier
pricing_weights?: UserCarrierPricing2Weight[]; // Adjusted to match model and JSON data
extra_fees?: UserCarrierPricingExtraFees[]; // Adjusted to match model and JSON data
}
export interface UserCarrierPricing2Weight {
id: number;
user_carrier_pricing_id: number;
weight_max: number;
shipping_price: number;
}
export interface UserCarrierPricingExtraFees {
id: number;
user_carrier_pricing_id: number;
carrier_extra_fee_type_id: number;
carrier_extra_fee_value: number;
carrier_extra_fee_value_type: string; // Could be "monetary" or other types
extra_fee_type?: CarrierExtraFeeTypes; // Relationship to CarrierExtraFeeTypes
}
export interface CarrierBasePricing {
id: number;
user_id: number;
carrier_id: number;
cod_price?: number;
pricing_weights?: CarrierBasePricing2Weight[]; // Adjusted to match model and JSON data
extra_fees?: CarrierBasePricingExtraFees[]; // Adjusted to match model and JSON data
}
export interface CarrierBasePricing2Weight {
id: number;
carrier_base_pricing_id: number;
weight_max: number;
shipping_price: number;
}
export interface CarrierBasePricingExtraFees {
id: number;
carrier_base_pricing_id: number;
carrier_extra_fee_type_id: number;
carrier_extra_fee_value: number;
carrier_extra_fee_value_type: string; // Could be "monetary" or other types
extra_fee_type?: CarrierExtraFeeTypes; // Relationship to CarrierExtraFeeTypes
}
export interface CarrierExtraFeeTypes {
id: number;
name: string;
description?: string;
}
export interface PickupPoint {
id: number;
ext_id: string;
carrier_id: number;
carrier: Carrier;
location: string;
name: string;
type: string;
directions?: string;
place_name?: string;
address: string;
zip: string;
city: string;
country_iso: string;
status_id?: number;
card?: boolean;
cod?: boolean;
wheelchair?: boolean;
photo_url?: string;
thumbnail_url?: string;
enabled: boolean;
distance: string;
shipment_price: number;
updated_at: Date;
}
export interface Files {
files: File[]
}
export interface File {
id: number;
filename: string;
user: User;
// file_data: string;
lifetime: string;
associated_id: number;
type: string;
created_at: string;
updated_at: string;
}
export interface StockList {
to_be_withdrawn: number,
name: string,
model: string,
physicalItemId: string,
mapping_breakdown: MappingProduct[]
}
export interface MappingProduct {
to_be_withdrawn: number,
name: string,
model: string,
mapping_id: string,
shipment_request_item_ids: number[]
}
export interface Task {
id: number;
user: User;
task_title: string;
task_desc: string;
related_id: number;
related_id_type: string;
comment: string;
completed: boolean;
}