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:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user