#if DEBUG import DatabaseClientLive import Dependencies import FluentSQLiteDriver import SharedModels import Vapor struct SeedCommand: AsyncCommand { struct Signature: CommandSignature {} var help: String { "Generate random seed database." } func run(using context: CommandContext, signature: Signature) async throws { let database = DatabaseClient.live(database: context.application.db(.sqlite)) var users: [User] = [] var employees: [Employee] = [] var vendors: [Vendor] = [] var vendorBranches: [VendorBranch] = [] let adminUser = User.Create( username: Environment.get("ADMIN_USERNAME") ?? "admin", email: Environment.get("ADMIN_EMAIL") ?? "admin@development.com", password: Environment.get("ADMIN_PASSWORD") ?? "super-secret", confirmPassword: Environment.get("ADMIN_PASSWORD") ?? "super-secret" ) _ = try await database.users.create(adminUser) for user in User.Create.generateMocks() { let created = try await database.users.create(user) users.append(created) } for employee in Employee.Create.generateMocks() { let created = try await database.employees.create(employee) employees.append(created) } for vendor in Vendor.Create.generateMocks() { let created = try await database.vendors.create(vendor) vendors.append(created) } for branch in VendorBranch.Create.generateMocks(vendors: vendors) { let created = try await database.vendorBranches.create(branch) vendorBranches.append(created) } for purchaseOrder in PurchaseOrder.CreateIntermediate.generateMocks( employees: employees, vendorBranches: vendorBranches ) { _ = try await database.purchaseOrders.create( purchaseOrder.toCreate(createdByID: users.randomElement()!.id) ) } } } #endif