feat(fields): мягкое удаление полей формы — архив удалённых с восстановлением и блок «Удалённые поля» в задаче
This commit is contained in:
@@ -561,10 +561,11 @@ export const formFields = pgTable("form_fields", {
|
||||
linkToUserProfile: boolean("link_to_user_profile").default(false), // связывать задачи формы с профилем пользователя (поле типа user)
|
||||
allowMultiple: boolean("allow_multiple").default(false), // разрешить множественный выбор для select/table
|
||||
ganttRole: varchar("gantt_role", { length: 20 }), // 'start' | 'end' | 'milestone' | null — роль поля в Гантте
|
||||
deletedAt: timestamp("deleted_at"), // мягкое удаление: скрыто везде, значения в задачах сохранены
|
||||
createdAt: timestamp("created_at").defaultNow(),
|
||||
}, (table) => ({
|
||||
// Уникальность кода поля внутри формы
|
||||
uniqueFieldCode: unique().on(table.formId, table.code),
|
||||
// Уникальность кода поля внутри формы — только среди активных (удалённые не мешают)
|
||||
uniqueFieldCode: uniqueIndex("form_fields_form_id_code_active_key").on(table.formId, table.code).where(sql`${table.deletedAt} IS NULL`),
|
||||
// Композитный уникальный ключ для referential integrity
|
||||
fieldFormComposite: unique().on(table.id, table.formId),
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user