Skip to main content

backbone_inventory/seeders/
mod.rs

1//! Database seeders for the inventory module
2//!
3//! Generated by metaphor-schema. Do not edit manually.
4//!
5//! This module provides seed data for initial database setup.
6//! Seeders can be run via the seeder binary or CLI.
7
8use anyhow::Result;
9use async_trait::async_trait;
10use sqlx::PgPool;
11
12mod picking_batch_seeder;
13mod delivery_note_seeder;
14mod delivery_note_item_seeder;
15mod inventory_company_setting_seeder;
16mod landed_cost_seeder;
17mod landed_cost_line_seeder;
18mod landed_cost_adjustment_line_seeder;
19mod location_seeder;
20mod stock_move_seeder;
21mod stock_move_line_seeder;
22mod operation_type_seeder;
23mod transfer_seeder;
24mod route_seeder;
25mod route_rule_seeder;
26mod reordering_rule_seeder;
27mod purchase_receipt_seeder;
28mod purchase_receipt_item_seeder;
29mod quant_seeder;
30mod scrap_seeder;
31mod scrap_reason_tag_seeder;
32mod stock_entry_seeder;
33mod stock_entry_item_seeder;
34mod stock_ledger_entry_seeder;
35mod bin_seeder;
36mod stock_reconciliation_seeder;
37mod stock_reconciliation_item_seeder;
38mod package_type_seeder;
39mod storage_category_seeder;
40mod storage_category_capacity_seeder;
41mod putaway_rule_seeder;
42mod lot_seeder;
43mod package_seeder;
44mod warehouse_seeder;
45mod stock_item_seeder;
46
47pub use picking_batch_seeder::SeedPickingBatchSeeder;
48pub use delivery_note_seeder::SeedDeliveryNoteSeeder;
49pub use delivery_note_item_seeder::SeedDeliveryNoteItemSeeder;
50pub use inventory_company_setting_seeder::SeedInventoryCompanySettingSeeder;
51pub use landed_cost_seeder::SeedLandedCostSeeder;
52pub use landed_cost_line_seeder::SeedLandedCostLineSeeder;
53pub use landed_cost_adjustment_line_seeder::SeedLandedCostAdjustmentLineSeeder;
54pub use location_seeder::SeedLocationSeeder;
55pub use stock_move_seeder::SeedStockMoveSeeder;
56pub use stock_move_line_seeder::SeedStockMoveLineSeeder;
57pub use operation_type_seeder::SeedOperationTypeSeeder;
58pub use transfer_seeder::SeedTransferSeeder;
59pub use route_seeder::SeedRouteSeeder;
60pub use route_rule_seeder::SeedRouteRuleSeeder;
61pub use reordering_rule_seeder::SeedReorderingRuleSeeder;
62pub use purchase_receipt_seeder::SeedPurchaseReceiptSeeder;
63pub use purchase_receipt_item_seeder::SeedPurchaseReceiptItemSeeder;
64pub use quant_seeder::SeedQuantSeeder;
65pub use scrap_seeder::SeedScrapSeeder;
66pub use scrap_reason_tag_seeder::SeedScrapReasonTagSeeder;
67pub use stock_entry_seeder::SeedStockEntrySeeder;
68pub use stock_entry_item_seeder::SeedStockEntryItemSeeder;
69pub use stock_ledger_entry_seeder::SeedStockLedgerEntrySeeder;
70pub use bin_seeder::SeedBinSeeder;
71pub use stock_reconciliation_seeder::SeedStockReconciliationSeeder;
72pub use stock_reconciliation_item_seeder::SeedStockReconciliationItemSeeder;
73pub use package_type_seeder::SeedPackageTypeSeeder;
74pub use storage_category_seeder::SeedStorageCategorySeeder;
75pub use storage_category_capacity_seeder::SeedStorageCategoryCapacitySeeder;
76pub use putaway_rule_seeder::SeedPutawayRuleSeeder;
77pub use lot_seeder::SeedLotSeeder;
78pub use package_seeder::SeedPackageSeeder;
79pub use warehouse_seeder::SeedWarehouseSeeder;
80pub use stock_item_seeder::SeedStockItemSeeder;
81
82// ============================================================================
83// SEEDER TRAIT
84// ============================================================================
85
86/// Trait for database seeders
87#[async_trait]
88pub trait Seeder {
89    /// Get the name of this seeder
90    fn name(&self) -> &'static str;
91
92    /// Get the order in which this seeder should run
93    fn order(&self) -> i32;
94
95    /// Check if this seeder should run (e.g., check if data already exists)
96    async fn should_run(&self, pool: &PgPool) -> Result<bool>;
97
98    /// Run the seeder
99    async fn run(&self, pool: &PgPool) -> Result<()>;
100
101    /// Rollback the seeder (optional)
102    async fn rollback(&self, _pool: &PgPool) -> Result<()> {
103        Ok(())
104    }
105}
106
107// ============================================================================
108// SEEDER TYPE
109// ============================================================================
110
111/// Type of seeder
112#[derive(Debug, Clone, Copy, PartialEq, Eq)]
113pub enum SeederType {
114    /// Reference data (required for application to function)
115    Reference,
116    /// Initial production data
117    Production,
118    /// Development/testing data
119    Development,
120    /// Test data (for automated tests)
121    Test,
122}
123
124// ============================================================================
125// CUSTOM SEEDERS
126// ============================================================================
127
128// Add custom seeders here
129