28 lines
1.0 KiB
TypeScript
28 lines
1.0 KiB
TypeScript
import type { AppDatabase } from "../../src/db/database-context.js";
|
|
import { circuitLists } from "../../src/db/schema/circuit-lists.js";
|
|
import { circuitSections } from "../../src/db/schema/circuit-sections.js";
|
|
import { distributionBoards } from "../../src/db/schema/distribution-boards.js";
|
|
import { createDistributionBoardStructureSnapshot } from "../../src/domain/models/distribution-board-structure-project-command.model.js";
|
|
|
|
export class DistributionBoardFixtureRepository {
|
|
constructor(private readonly database: AppDatabase) {}
|
|
|
|
createWithCircuitListAndDefaultSections(
|
|
projectId: string,
|
|
name: string
|
|
) {
|
|
const structure = createDistributionBoardStructureSnapshot(
|
|
projectId,
|
|
name
|
|
);
|
|
this.database.transaction((tx) => {
|
|
tx.insert(distributionBoards)
|
|
.values(structure.distributionBoard)
|
|
.run();
|
|
tx.insert(circuitLists).values(structure.circuitList).run();
|
|
tx.insert(circuitSections).values(structure.sections).run();
|
|
});
|
|
return structure.distributionBoard;
|
|
}
|
|
}
|