pub mod picking_batch_dto;
pub mod delivery_note_dto;
pub mod delivery_note_item_dto;
pub mod inventory_company_setting_dto;
pub mod landed_cost_dto;
pub mod landed_cost_line_dto;
pub mod landed_cost_adjustment_line_dto;
pub mod location_dto;
pub mod stock_move_dto;
pub mod stock_move_line_dto;
pub mod operation_type_dto;
pub mod transfer_dto;
pub mod route_dto;
pub mod route_rule_dto;
pub mod reordering_rule_dto;
pub mod purchase_receipt_dto;
pub mod purchase_receipt_item_dto;
pub mod quant_dto;
pub mod scrap_dto;
pub mod scrap_reason_tag_dto;
pub mod stock_entry_dto;
pub mod stock_entry_item_dto;
pub mod stock_ledger_entry_dto;
pub mod bin_dto;
pub mod stock_reconciliation_dto;
pub mod stock_reconciliation_item_dto;
pub mod package_type_dto;
pub mod storage_category_dto;
pub mod storage_category_capacity_dto;
pub mod putaway_rule_dto;
pub mod lot_dto;
pub mod package_dto;
pub mod warehouse_dto;
pub mod stock_item_dto;
pub use picking_batch_dto::{
CreatePickingBatchDto,
UpdatePickingBatchDto,
PatchPickingBatchDto,
PickingBatchResponseDto,
PickingBatchListResponseDto,
PickingBatchSummaryDto,
};
pub use delivery_note_dto::{
CreateDeliveryNoteDto,
UpdateDeliveryNoteDto,
PatchDeliveryNoteDto,
DeliveryNoteResponseDto,
DeliveryNoteListResponseDto,
DeliveryNoteSummaryDto,
};
pub use delivery_note_item_dto::{
CreateDeliveryNoteItemDto,
UpdateDeliveryNoteItemDto,
PatchDeliveryNoteItemDto,
DeliveryNoteItemResponseDto,
DeliveryNoteItemListResponseDto,
DeliveryNoteItemSummaryDto,
};
pub use inventory_company_setting_dto::{
CreateInventoryCompanySettingDto,
UpdateInventoryCompanySettingDto,
PatchInventoryCompanySettingDto,
InventoryCompanySettingResponseDto,
InventoryCompanySettingListResponseDto,
InventoryCompanySettingSummaryDto,
};
pub use landed_cost_dto::{
CreateLandedCostDto,
UpdateLandedCostDto,
PatchLandedCostDto,
LandedCostResponseDto,
LandedCostListResponseDto,
LandedCostSummaryDto,
};
pub use landed_cost_line_dto::{
CreateLandedCostLineDto,
UpdateLandedCostLineDto,
PatchLandedCostLineDto,
LandedCostLineResponseDto,
LandedCostLineListResponseDto,
LandedCostLineSummaryDto,
};
pub use landed_cost_adjustment_line_dto::{
CreateLandedCostAdjustmentLineDto,
UpdateLandedCostAdjustmentLineDto,
PatchLandedCostAdjustmentLineDto,
LandedCostAdjustmentLineResponseDto,
LandedCostAdjustmentLineListResponseDto,
LandedCostAdjustmentLineSummaryDto,
};
pub use location_dto::{
CreateLocationDto,
UpdateLocationDto,
PatchLocationDto,
LocationResponseDto,
LocationListResponseDto,
LocationSummaryDto,
};
pub use stock_move_dto::{
CreateStockMoveDto,
UpdateStockMoveDto,
PatchStockMoveDto,
StockMoveResponseDto,
StockMoveListResponseDto,
StockMoveSummaryDto,
};
pub use stock_move_line_dto::{
CreateStockMoveLineDto,
UpdateStockMoveLineDto,
PatchStockMoveLineDto,
StockMoveLineResponseDto,
StockMoveLineListResponseDto,
StockMoveLineSummaryDto,
};
pub use operation_type_dto::{
CreateOperationTypeDto,
UpdateOperationTypeDto,
PatchOperationTypeDto,
OperationTypeResponseDto,
OperationTypeListResponseDto,
OperationTypeSummaryDto,
};
pub use transfer_dto::{
CreateTransferDto,
UpdateTransferDto,
PatchTransferDto,
TransferResponseDto,
TransferListResponseDto,
TransferSummaryDto,
};
pub use route_dto::{
CreateRouteDto,
UpdateRouteDto,
PatchRouteDto,
RouteResponseDto,
RouteListResponseDto,
RouteSummaryDto,
};
pub use route_rule_dto::{
CreateRouteRuleDto,
UpdateRouteRuleDto,
PatchRouteRuleDto,
RouteRuleResponseDto,
RouteRuleListResponseDto,
RouteRuleSummaryDto,
};
pub use reordering_rule_dto::{
CreateReorderingRuleDto,
UpdateReorderingRuleDto,
PatchReorderingRuleDto,
ReorderingRuleResponseDto,
ReorderingRuleListResponseDto,
ReorderingRuleSummaryDto,
};
pub use purchase_receipt_dto::{
CreatePurchaseReceiptDto,
UpdatePurchaseReceiptDto,
PatchPurchaseReceiptDto,
PurchaseReceiptResponseDto,
PurchaseReceiptListResponseDto,
PurchaseReceiptSummaryDto,
};
pub use purchase_receipt_item_dto::{
CreatePurchaseReceiptItemDto,
UpdatePurchaseReceiptItemDto,
PatchPurchaseReceiptItemDto,
PurchaseReceiptItemResponseDto,
PurchaseReceiptItemListResponseDto,
PurchaseReceiptItemSummaryDto,
};
pub use quant_dto::{
CreateQuantDto,
UpdateQuantDto,
PatchQuantDto,
QuantResponseDto,
QuantListResponseDto,
QuantSummaryDto,
};
pub use scrap_dto::{
CreateScrapDto,
UpdateScrapDto,
PatchScrapDto,
ScrapResponseDto,
ScrapListResponseDto,
ScrapSummaryDto,
};
pub use scrap_reason_tag_dto::{
CreateScrapReasonTagDto,
UpdateScrapReasonTagDto,
PatchScrapReasonTagDto,
ScrapReasonTagResponseDto,
ScrapReasonTagListResponseDto,
ScrapReasonTagSummaryDto,
};
pub use stock_entry_dto::{
CreateStockEntryDto,
UpdateStockEntryDto,
PatchStockEntryDto,
StockEntryResponseDto,
StockEntryListResponseDto,
StockEntrySummaryDto,
};
pub use stock_entry_item_dto::{
CreateStockEntryItemDto,
UpdateStockEntryItemDto,
PatchStockEntryItemDto,
StockEntryItemResponseDto,
StockEntryItemListResponseDto,
StockEntryItemSummaryDto,
};
pub use stock_ledger_entry_dto::{
CreateStockLedgerEntryDto,
UpdateStockLedgerEntryDto,
PatchStockLedgerEntryDto,
StockLedgerEntryResponseDto,
StockLedgerEntryListResponseDto,
StockLedgerEntrySummaryDto,
};
pub use bin_dto::{
CreateBinDto,
UpdateBinDto,
PatchBinDto,
BinResponseDto,
BinListResponseDto,
BinSummaryDto,
};
pub use stock_reconciliation_dto::{
CreateStockReconciliationDto,
UpdateStockReconciliationDto,
PatchStockReconciliationDto,
StockReconciliationResponseDto,
StockReconciliationListResponseDto,
StockReconciliationSummaryDto,
};
pub use stock_reconciliation_item_dto::{
CreateStockReconciliationItemDto,
UpdateStockReconciliationItemDto,
PatchStockReconciliationItemDto,
StockReconciliationItemResponseDto,
StockReconciliationItemListResponseDto,
StockReconciliationItemSummaryDto,
};
pub use package_type_dto::{
CreatePackageTypeDto,
UpdatePackageTypeDto,
PatchPackageTypeDto,
PackageTypeResponseDto,
PackageTypeListResponseDto,
PackageTypeSummaryDto,
};
pub use storage_category_dto::{
CreateStorageCategoryDto,
UpdateStorageCategoryDto,
PatchStorageCategoryDto,
StorageCategoryResponseDto,
StorageCategoryListResponseDto,
StorageCategorySummaryDto,
};
pub use storage_category_capacity_dto::{
CreateStorageCategoryCapacityDto,
UpdateStorageCategoryCapacityDto,
PatchStorageCategoryCapacityDto,
StorageCategoryCapacityResponseDto,
StorageCategoryCapacityListResponseDto,
StorageCategoryCapacitySummaryDto,
};
pub use putaway_rule_dto::{
CreatePutawayRuleDto,
UpdatePutawayRuleDto,
PatchPutawayRuleDto,
PutawayRuleResponseDto,
PutawayRuleListResponseDto,
PutawayRuleSummaryDto,
};
pub use lot_dto::{
CreateLotDto,
UpdateLotDto,
PatchLotDto,
LotResponseDto,
LotListResponseDto,
LotSummaryDto,
};
pub use package_dto::{
CreatePackageDto,
UpdatePackageDto,
PatchPackageDto,
PackageResponseDto,
PackageListResponseDto,
PackageSummaryDto,
};
pub use warehouse_dto::{
CreateWarehouseDto,
UpdateWarehouseDto,
PatchWarehouseDto,
WarehouseResponseDto,
WarehouseListResponseDto,
WarehouseSummaryDto,
};
pub use stock_item_dto::{
CreateStockItemDto,
UpdateStockItemDto,
PatchStockItemDto,
StockItemResponseDto,
StockItemListResponseDto,
StockItemSummaryDto,
};
use serde::Serialize;
#[cfg(feature = "openapi")]
#[cfg(feature = "openapi")]
use utoipa::ToSchema;
#[derive(Debug, Clone, Default, serde::Deserialize)]
#[cfg_attr(feature = "openapi", derive(ToSchema))]
pub struct PaginationParams {
#[serde(default = "default_page")]
pub page: u32,
#[serde(default = "default_per_page")]
pub per_page: u32,
pub sort_by: Option<String>,
pub sort_order: Option<String>,
}
fn default_page() -> u32 { 1 }
fn default_per_page() -> u32 { 20 }
#[derive(Debug, Clone, Serialize)]
#[cfg_attr(feature = "openapi", derive(ToSchema))]
#[serde(rename_all = "camelCase")]
pub struct ApiResponse<T> {
pub success: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<T>,
#[serde(skip_serializing_if = "Option::is_none")]
pub error: Option<ApiError>,
}
#[derive(Debug, Clone, Serialize)]
#[cfg_attr(feature = "openapi", derive(ToSchema))]
pub struct ApiError {
pub code: String,
pub message: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub details: Option<serde_json::Value>,
}
impl<T> ApiResponse<T> {
pub fn ok(data: T) -> Self {
Self { success: true, data: Some(data), error: None }
}
pub fn err(code: impl Into<String>, message: impl Into<String>) -> Self {
Self {
success: false,
data: None,
error: Some(ApiError {
code: code.into(),
message: message.into(),
details: None,
}),
}
}
}