Add reconciliation comments functionality for task management

Implement schema and relations for reconciliation comments, linking them to deliveries, groups, and users. Add insert schema for reconciliation comments.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 95e8aab4-f39f-4b48-aa57-a759ec15ba3d
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/95e8aab4-f39f-4b48-aa57-a759ec15ba3d/BOWXK9F
This commit is contained in:
michaelschal committed 2025-09-10 07:39:18 +00:00
1 parent 4496a7ff58
commit f7159ee808
1 file changed
+37 -1
+37 -1
View File
@@ -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<typeof insertAvoirSchema>;
export type DashboardMessage = typeof dashboardMessages.$inferSelect;
export type InsertDashboardMessage = z.infer<typeof insertDashboardMessageSchema>;
export type ReconciliationComment = typeof reconciliationComments.$inferSelect;
export type InsertReconciliationComment = z.infer<typeof insertReconciliationCommentSchema>;
// 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(),