Simplify Project Schema
Problem
Заголовок раздела «Problem»The Project model is overloaded with budget-related fields that will be moved to a separate table in the future. Currently, creating a project requires filling in too many fields.
Decision
Заголовок раздела «Decision»Simplify the Project model to require only: title, description, category (optional). Remove budget and deadline fields entirely from the schema.
Changes
Заголовок раздела «Changes»Prisma Schema
Заголовок раздела «Prisma Schema»Remove from Project model:
budgetType(ProjectBudgetType enum)budgetMin(Decimal)budgetMax(Decimal)currency(String)deadline(DateTime)
Change:
categoryfrom required to optional (nullable)
Remove enum:
ProjectBudgetType(FIXED, HOURLY)
ProjectCreateDto
Заголовок раздела «ProjectCreateDto»Required: title (3-255 chars), description (min 3 chars) Optional: category (ProjectCategoryType)
ProjectUpdateDto
Заголовок раздела «ProjectUpdateDto»All optional: title, description, category
ProjectResponseDto
Заголовок раздела «ProjectResponseDto»Fields: id, title, description, category (nullable), status, customerId, createdAt, updatedAt
Affected Files
Заголовок раздела «Affected Files»apps/core-api/prisma/schema.prisma- remove fields, make category nullable, remove ProjectBudgetType enumlibs/apis/providers/project-api/data-access/src/lib/dtos/project.dto.ts- simplify all DTOslibs/apis/providers/project-api/features/project/src/lib/project.service.ts- remove budget-related logic- Prisma migration - DROP COLUMNs
Unchanged
Заголовок раздела «Unchanged»- Project controller (endpoints stay the same)
- Status transitions
- Customer guard / auth
- WalriderThread integration