feat: Adds script to generate database seeded values and removes old mock storage.

This commit is contained in:
2025-01-16 21:00:27 -05:00
parent 09b46f672a
commit e1d07008a1
16 changed files with 399 additions and 535 deletions

View File

@@ -0,0 +1,49 @@
#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] = []
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.Create.generateMocks(employees: employees, vendorBranches: vendorBranches) {
_ = try await database.purchaseOrders.create(purchaseOrder, users.randomElement()!.id)
}
}
}
#endif