feat(numbering): projects get their own dedicated number sequence (decoupled from orders)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
BOHA
2026-06-09 19:24:51 +02:00
parent 9e9aacdf0b
commit ed9ea52a44
5 changed files with 148 additions and 22 deletions

View File

@@ -1,8 +1,8 @@
import prisma from "../config/database";
import {
generateSharedNumber,
previewSharedNumber,
releaseSharedNumber,
generateProjectNumber,
previewProjectNumber,
releaseProjectNumber,
} from "./numbering.service";
import { NasFileManager } from "./nas-file-manager";
import type { CreateProjectInput } from "../schemas/projects.schema";
@@ -177,7 +177,7 @@ export async function createProject(data: CreateProjectInput) {
}
const project = await prisma.$transaction(async (tx) => {
const project_number = await generateSharedNumber(tx);
const project_number = await generateProjectNumber(tx);
return tx.projects.create({
data: {
project_number,
@@ -210,9 +210,9 @@ export async function createProject(data: CreateProjectInput) {
return project;
}
/** Preview the next shared number for the create form (does NOT consume it). */
/** Preview the next project number for the create form (does NOT consume it). */
export async function getNextProjectNumber(): Promise<string> {
return previewSharedNumber();
return previewProjectNumber();
}
export async function deleteProject(id: number, deleteFiles: boolean = false) {
@@ -241,7 +241,7 @@ export async function deleteProject(id: number, deleteFiles: boolean = false) {
const year = existing.created_at
? new Date(existing.created_at).getFullYear()
: new Date().getFullYear();
await releaseSharedNumber(year, existing.project_number ?? undefined);
await releaseProjectNumber(year, existing.project_number ?? undefined);
return existing;
}