diff --git a/shared/schema.ts b/shared/schema.ts index 4971194..ce3fbdf 100644 --- a/shared/schema.ts +++ b/shared/schema.ts @@ -319,6 +319,7 @@ export const usersRelations = relations(users, ({ many }) => ({ assignedTasks: many(tasks), createdAnnouncements: many(dashboardMessages), createdAvoirs: many(avoirs), + createdReconciliationComments: many(reconciliationComments), })); export const groupsRelations = relations(groups, ({ one, many }) => ({ @@ -331,6 +332,7 @@ export const groupsRelations = relations(groups, ({ one, many }) => ({ tasks: many(tasks), announcements: many(dashboardMessages), avoirs: many(avoirs), + reconciliationComments: many(reconciliationComments), })); export const userGroupsRelations = relations(userGroups, ({ one }) => ({ @@ -367,7 +369,7 @@ export const ordersRelations = relations(orders, ({ one, many }) => ({ deliveries: many(deliveries), })); -export const deliveriesRelations = relations(deliveries, ({ one }) => ({ +export const deliveriesRelations = relations(deliveries, ({ one, many }) => ({ order: one(orders, { fields: [deliveries.orderId], references: [orders.id], @@ -384,6 +386,7 @@ export const deliveriesRelations = relations(deliveries, ({ one }) => ({ fields: [deliveries.createdBy], references: [users.id], }), + reconciliationComments: many(reconciliationComments), })); export const publicitiesRelations = relations(publicities, ({ one, many }) => ({ @@ -481,6 +484,22 @@ export const dashboardMessagesRelations = relations(dashboardMessages, ({ one }) // Alias pour compatibilité export const announcementsRelations = dashboardMessagesRelations; +// Relations pour les commentaires de rapprochement +export const reconciliationCommentsRelations = relations(reconciliationComments, ({ one }) => ({ + delivery: one(deliveries, { + fields: [reconciliationComments.deliveryId], + references: [deliveries.id], + }), + group: one(groups, { + fields: [reconciliationComments.groupId], + references: [groups.id], + }), + author: one(users, { + fields: [reconciliationComments.authorId], + references: [users.id], + }), +})); + // Zod schemas export const insertUserSchema = createInsertSchema(users).pick({ id: true, @@ -610,6 +629,14 @@ export const insertDashboardMessageSchema = createInsertSchema(dashboardMessages export const insertAnnouncementSchema = insertDashboardMessageSchema; +export const insertReconciliationCommentSchema = createInsertSchema(reconciliationComments).omit({ + id: true, + createdAt: true, + updatedAt: true, +}).extend({ + type: z.enum(["info", "warning", "error", "success"]).default("info"), +}); + export const insertNocodbConfigSchema = createInsertSchema(nocodbConfig).omit({ id: true, createdAt: true, @@ -670,6 +697,8 @@ export type Avoir = typeof avoirs.$inferSelect; export type InsertAvoir = z.infer; export type DashboardMessage = typeof dashboardMessages.$inferSelect; export type InsertDashboardMessage = z.infer; +export type ReconciliationComment = typeof reconciliationComments.$inferSelect; +export type InsertReconciliationComment = z.infer; // Alias pour compatibilité export type Announcement = DashboardMessage; @@ -738,6 +767,13 @@ export type DashboardMessageWithRelations = DashboardMessage & { // Alias pour compatibilité export type AnnouncementWithRelations = DashboardMessageWithRelations; +// Reconciliation Comment with relations type +export type ReconciliationCommentWithRelations = ReconciliationComment & { + delivery: DeliveryWithRelations; + group: Group; + author: User; +}; + // SAV (Service Après-Vente) Tables export const savTickets = pgTable("sav_tickets", { id: serial("id").primaryKey(),