From 0a328c147e9e6084104ddda940884c0dc039b6d3 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Wed, 24 Sep 2025 12:04:15 +0000 Subject: [PATCH] Add alert modal for DLC status to dashboard view Introduces a `DlcAlertModal` component and integrates it into the `Dashboard` page. The modal is conditionally displayed for non-admin users based on DLC expiration status, with logic to handle snoozing and auto-dismissal. Updates are also reflected in database backup files. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 1e4433b5-47ab-464c-b663-fea2e53367dd Replit-Commit-Checkpoint-Type: intermediate_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/1e4433b5-47ab-464c-b663-fea2e53367dd/jnL5Pt5 --- .replit | 4 + ...up_automatic_2025-09-24T06-04-17-915Z.sql} | 563 ++++++++++-------- client/src/components/DlcAlertModal.tsx | 285 +++++++++ client/src/pages/Dashboard.tsx | 39 ++ 4 files changed, 650 insertions(+), 241 deletions(-) rename backups/{backup_automatic_2025-09-12T10-06-11-906Z.sql => backup_automatic_2025-09-24T06-04-17-915Z.sql} (91%) create mode 100644 client/src/components/DlcAlertModal.tsx diff --git a/.replit b/.replit index dce2674..4cce45e 100644 --- a/.replit +++ b/.replit @@ -35,6 +35,10 @@ externalPort = 3001 localPort = 41735 externalPort = 4200 +[[ports]] +localPort = 46005 +externalPort = 5000 + [[ports]] localPort = 46559 externalPort = 5173 diff --git a/backups/backup_automatic_2025-09-12T10-06-11-906Z.sql b/backups/backup_automatic_2025-09-24T06-04-17-915Z.sql similarity index 91% rename from backups/backup_automatic_2025-09-12T10-06-11-906Z.sql rename to backups/backup_automatic_2025-09-24T06-04-17-915Z.sql index 5274854..259a540 100644 --- a/backups/backup_automatic_2025-09-12T10-06-11-906Z.sql +++ b/backups/backup_automatic_2025-09-24T06-04-17-915Z.sql @@ -2,10 +2,10 @@ -- PostgreSQL database dump -- --- Dumped from database version 16.9 (84ade85) +-- Dumped from database version 16.9 (63f4182) -- Dumped by pg_dump version 16.9 --- Started on 2025-09-12 10:06:12 UTC +-- Started on 2025-09-24 06:04:17 UTC SET statement_timeout = 0; SET lock_timeout = 0; @@ -20,7 +20,7 @@ SET row_security = off; DROP DATABASE IF EXISTS neondb; -- --- TOC entry 3829 (class 1262 OID 16389) +-- TOC entry 3845 (class 1262 OID 16389) -- Name: neondb; Type: DATABASE; Schema: -; Owner: neondb_owner -- @@ -67,7 +67,7 @@ CREATE TABLE public.announcements ( ALTER TABLE public.announcements OWNER TO neondb_owner; -- --- TOC entry 3831 (class 0 OID 0) +-- TOC entry 3847 (class 0 OID 0) -- Dependencies: 272 -- Name: TABLE announcements; Type: COMMENT; Schema: public; Owner: neondb_owner -- @@ -76,7 +76,7 @@ COMMENT ON TABLE public.announcements IS 'Admin-managed announcements/informatio -- --- TOC entry 3832 (class 0 OID 0) +-- TOC entry 3848 (class 0 OID 0) -- Dependencies: 272 -- Name: COLUMN announcements.priority; Type: COMMENT; Schema: public; Owner: neondb_owner -- @@ -85,7 +85,7 @@ COMMENT ON COLUMN public.announcements.priority IS 'Priority level: normal, impo -- --- TOC entry 3833 (class 0 OID 0) +-- TOC entry 3849 (class 0 OID 0) -- Dependencies: 272 -- Name: COLUMN announcements.group_id; Type: COMMENT; Schema: public; Owner: neondb_owner -- @@ -110,7 +110,7 @@ CREATE SEQUENCE public.announcements_id_seq ALTER SEQUENCE public.announcements_id_seq OWNER TO neondb_owner; -- --- TOC entry 3834 (class 0 OID 0) +-- TOC entry 3850 (class 0 OID 0) -- Dependencies: 271 -- Name: announcements_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -161,7 +161,7 @@ CREATE SEQUENCE public.avoirs_id_seq ALTER SEQUENCE public.avoirs_id_seq OWNER TO neondb_owner; -- --- TOC entry 3835 (class 0 OID 0) +-- TOC entry 3851 (class 0 OID 0) -- Dependencies: 275 -- Name: avoirs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -209,7 +209,7 @@ CREATE SEQUENCE public.calendar_events_id_seq ALTER SEQUENCE public.calendar_events_id_seq OWNER TO neondb_owner; -- --- TOC entry 3836 (class 0 OID 0) +-- TOC entry 3852 (class 0 OID 0) -- Dependencies: 215 -- Name: calendar_events_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -256,7 +256,7 @@ CREATE SEQUENCE public.client_orders_id_seq ALTER SEQUENCE public.client_orders_id_seq OWNER TO neondb_owner; -- --- TOC entry 3837 (class 0 OID 0) +-- TOC entry 3853 (class 0 OID 0) -- Dependencies: 217 -- Name: client_orders_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -300,7 +300,7 @@ CREATE SEQUENCE public.command_items_id_seq ALTER SEQUENCE public.command_items_id_seq OWNER TO neondb_owner; -- --- TOC entry 3838 (class 0 OID 0) +-- TOC entry 3854 (class 0 OID 0) -- Dependencies: 219 -- Name: command_items_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -348,7 +348,7 @@ CREATE SEQUENCE public.commands_id_seq ALTER SEQUENCE public.commands_id_seq OWNER TO neondb_owner; -- --- TOC entry 3839 (class 0 OID 0) +-- TOC entry 3855 (class 0 OID 0) -- Dependencies: 221 -- Name: commands_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -403,7 +403,7 @@ CREATE SEQUENCE public.customer_orders_id_seq ALTER SEQUENCE public.customer_orders_id_seq OWNER TO neondb_owner; -- --- TOC entry 3840 (class 0 OID 0) +-- TOC entry 3856 (class 0 OID 0) -- Dependencies: 246 -- Name: customer_orders_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -448,7 +448,7 @@ CREATE SEQUENCE public.customers_id_seq ALTER SEQUENCE public.customers_id_seq OWNER TO neondb_owner; -- --- TOC entry 3841 (class 0 OID 0) +-- TOC entry 3857 (class 0 OID 0) -- Dependencies: 223 -- Name: customers_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -491,7 +491,7 @@ CREATE SEQUENCE public.dashboard_messages_id_seq ALTER SEQUENCE public.dashboard_messages_id_seq OWNER TO neondb_owner; -- --- TOC entry 3842 (class 0 OID 0) +-- TOC entry 3858 (class 0 OID 0) -- Dependencies: 267 -- Name: dashboard_messages_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -567,7 +567,7 @@ CREATE SEQUENCE public.deliveries_id_seq ALTER SEQUENCE public.deliveries_id_seq OWNER TO neondb_owner; -- --- TOC entry 3843 (class 0 OID 0) +-- TOC entry 3859 (class 0 OID 0) -- Dependencies: 258 -- Name: deliveries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -611,7 +611,7 @@ CREATE SEQUENCE public.delivery_items_id_seq ALTER SEQUENCE public.delivery_items_id_seq OWNER TO neondb_owner; -- --- TOC entry 3844 (class 0 OID 0) +-- TOC entry 3860 (class 0 OID 0) -- Dependencies: 225 -- Name: delivery_items_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -657,7 +657,7 @@ CREATE TABLE public.dlc_products ( ALTER TABLE public.dlc_products OWNER TO neondb_owner; -- --- TOC entry 3845 (class 0 OID 0) +-- TOC entry 3861 (class 0 OID 0) -- Dependencies: 249 -- Name: COLUMN dlc_products.stock_epuise; Type: COMMENT; Schema: public; Owner: neondb_owner -- @@ -666,7 +666,7 @@ COMMENT ON COLUMN public.dlc_products.stock_epuise IS 'Indique si le produit est -- --- TOC entry 3846 (class 0 OID 0) +-- TOC entry 3862 (class 0 OID 0) -- Dependencies: 249 -- Name: COLUMN dlc_products.stock_epuise_by; Type: COMMENT; Schema: public; Owner: neondb_owner -- @@ -675,7 +675,7 @@ COMMENT ON COLUMN public.dlc_products.stock_epuise_by IS 'ID de l''utilisateur q -- --- TOC entry 3847 (class 0 OID 0) +-- TOC entry 3863 (class 0 OID 0) -- Dependencies: 249 -- Name: COLUMN dlc_products.stock_epuise_at; Type: COMMENT; Schema: public; Owner: neondb_owner -- @@ -700,7 +700,7 @@ CREATE SEQUENCE public.dlc_products_id_seq ALTER SEQUENCE public.dlc_products_id_seq OWNER TO neondb_owner; -- --- TOC entry 3848 (class 0 OID 0) +-- TOC entry 3864 (class 0 OID 0) -- Dependencies: 248 -- Name: dlc_products_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -752,7 +752,7 @@ CREATE SEQUENCE public.groups_id_seq ALTER SEQUENCE public.groups_id_seq OWNER TO neondb_owner; -- --- TOC entry 3849 (class 0 OID 0) +-- TOC entry 3865 (class 0 OID 0) -- Dependencies: 236 -- Name: groups_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -804,7 +804,7 @@ CREATE SEQUENCE public.invoice_verification_cache_id_seq ALTER SEQUENCE public.invoice_verification_cache_id_seq OWNER TO neondb_owner; -- --- TOC entry 3850 (class 0 OID 0) +-- TOC entry 3866 (class 0 OID 0) -- Dependencies: 265 -- Name: invoice_verification_cache_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -850,7 +850,7 @@ CREATE SEQUENCE public.invoice_verifications_id_seq ALTER SEQUENCE public.invoice_verifications_id_seq OWNER TO neondb_owner; -- --- TOC entry 3851 (class 0 OID 0) +-- TOC entry 3867 (class 0 OID 0) -- Dependencies: 263 -- Name: invoice_verifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -899,7 +899,7 @@ CREATE SEQUENCE public.invoices_id_seq ALTER SEQUENCE public.invoices_id_seq OWNER TO neondb_owner; -- --- TOC entry 3852 (class 0 OID 0) +-- TOC entry 3868 (class 0 OID 0) -- Dependencies: 227 -- Name: invoices_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -938,7 +938,7 @@ CREATE SEQUENCE public.migrations_id_seq ALTER SEQUENCE public.migrations_id_seq OWNER TO neondb_owner; -- --- TOC entry 3853 (class 0 OID 0) +-- TOC entry 3869 (class 0 OID 0) -- Dependencies: 269 -- Name: migrations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -984,7 +984,7 @@ CREATE SEQUENCE public.nocodb_config_id_seq ALTER SEQUENCE public.nocodb_config_id_seq OWNER TO neondb_owner; -- --- TOC entry 3854 (class 0 OID 0) +-- TOC entry 3870 (class 0 OID 0) -- Dependencies: 238 -- Name: nocodb_config_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -1032,7 +1032,7 @@ CREATE SEQUENCE public.orders_id_seq ALTER SEQUENCE public.orders_id_seq OWNER TO neondb_owner; -- --- TOC entry 3855 (class 0 OID 0) +-- TOC entry 3871 (class 0 OID 0) -- Dependencies: 242 -- Name: orders_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -1077,7 +1077,7 @@ CREATE SEQUENCE public.permissions_id_seq ALTER SEQUENCE public.permissions_id_seq OWNER TO neondb_owner; -- --- TOC entry 3856 (class 0 OID 0) +-- TOC entry 3872 (class 0 OID 0) -- Dependencies: 254 -- Name: permissions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -1124,7 +1124,7 @@ CREATE SEQUENCE public.publicities_id_seq ALTER SEQUENCE public.publicities_id_seq OWNER TO neondb_owner; -- --- TOC entry 3857 (class 0 OID 0) +-- TOC entry 3873 (class 0 OID 0) -- Dependencies: 244 -- Name: publicities_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -1139,8 +1139,7 @@ ALTER SEQUENCE public.publicities_id_seq OWNED BY public.publicities.id; CREATE TABLE public.publicity_participations ( publicity_id integer NOT NULL, - group_id integer NOT NULL, - created_at timestamp without time zone DEFAULT now() + group_id integer NOT NULL ); @@ -1183,7 +1182,7 @@ CREATE SEQUENCE public.reconciliation_comments_id_seq ALTER SEQUENCE public.reconciliation_comments_id_seq OWNER TO neondb_owner; -- --- TOC entry 3858 (class 0 OID 0) +-- TOC entry 3874 (class 0 OID 0) -- Dependencies: 277 -- Name: reconciliation_comments_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -1242,7 +1241,7 @@ CREATE SEQUENCE public.roles_id_seq ALTER SEQUENCE public.roles_id_seq OWNER TO neondb_owner; -- --- TOC entry 3859 (class 0 OID 0) +-- TOC entry 3875 (class 0 OID 0) -- Dependencies: 252 -- Name: roles_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -1292,7 +1291,7 @@ CREATE SEQUENCE public.sav_tickets_id_seq ALTER SEQUENCE public.sav_tickets_id_seq OWNER TO neondb_owner; -- --- TOC entry 3860 (class 0 OID 0) +-- TOC entry 3876 (class 0 OID 0) -- Dependencies: 229 -- Name: sav_tickets_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -1364,7 +1363,7 @@ CREATE SEQUENCE public.stores_id_seq ALTER SEQUENCE public.stores_id_seq OWNER TO neondb_owner; -- --- TOC entry 3861 (class 0 OID 0) +-- TOC entry 3877 (class 0 OID 0) -- Dependencies: 231 -- Name: stores_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -1408,7 +1407,7 @@ CREATE SEQUENCE public.suppliers_id_seq ALTER SEQUENCE public.suppliers_id_seq OWNER TO neondb_owner; -- --- TOC entry 3862 (class 0 OID 0) +-- TOC entry 3878 (class 0 OID 0) -- Dependencies: 240 -- Name: suppliers_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -1459,7 +1458,7 @@ CREATE SEQUENCE public.tasks_id_seq ALTER SEQUENCE public.tasks_id_seq OWNER TO neondb_owner; -- --- TOC entry 3863 (class 0 OID 0) +-- TOC entry 3879 (class 0 OID 0) -- Dependencies: 250 -- Name: tasks_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -1520,6 +1519,51 @@ CREATE TABLE public.users ( ALTER TABLE public.users OWNER TO neondb_owner; +-- +-- TOC entry 280 (class 1259 OID 2383873) +-- Name: weather_settings; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.weather_settings ( + id integer NOT NULL, + api_key character varying(255), + default_city character varying(255) DEFAULT 'Paris'::character varying NOT NULL, + units character varying(10) DEFAULT 'metric'::character varying NOT NULL, + update_interval integer DEFAULT 30 NOT NULL, + is_active boolean DEFAULT true NOT NULL, + created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP, + updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP, + location character varying(255) DEFAULT 'Paris'::character varying +); + + +ALTER TABLE public.weather_settings OWNER TO neondb_owner; + +-- +-- TOC entry 279 (class 1259 OID 2383872) +-- Name: weather_settings_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.weather_settings_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.weather_settings_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3880 (class 0 OID 0) +-- Dependencies: 279 +-- Name: weather_settings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.weather_settings_id_seq OWNED BY public.weather_settings.id; + + -- -- TOC entry 274 (class 1259 OID 2359334) -- Name: webhook_bap_config; Type: TABLE; Schema: public; Owner: neondb_owner @@ -1539,7 +1583,7 @@ CREATE TABLE public.webhook_bap_config ( ALTER TABLE public.webhook_bap_config OWNER TO neondb_owner; -- --- TOC entry 3864 (class 0 OID 0) +-- TOC entry 3881 (class 0 OID 0) -- Dependencies: 274 -- Name: TABLE webhook_bap_config; Type: COMMENT; Schema: public; Owner: neondb_owner -- @@ -1564,7 +1608,7 @@ CREATE SEQUENCE public.webhook_bap_config_id_seq ALTER SEQUENCE public.webhook_bap_config_id_seq OWNER TO neondb_owner; -- --- TOC entry 3865 (class 0 OID 0) +-- TOC entry 3882 (class 0 OID 0) -- Dependencies: 273 -- Name: webhook_bap_config_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner -- @@ -1573,7 +1617,7 @@ ALTER SEQUENCE public.webhook_bap_config_id_seq OWNED BY public.webhook_bap_conf -- --- TOC entry 3472 (class 2604 OID 2359310) +-- TOC entry 3476 (class 2604 OID 2359310) -- Name: announcements id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1581,7 +1625,7 @@ ALTER TABLE ONLY public.announcements ALTER COLUMN id SET DEFAULT nextval('publi -- --- TOC entry 3481 (class 2604 OID 2367492) +-- TOC entry 3485 (class 2604 OID 2367492) -- Name: avoirs id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1589,7 +1633,7 @@ ALTER TABLE ONLY public.avoirs ALTER COLUMN id SET DEFAULT nextval('public.avoir -- --- TOC entry 3347 (class 2604 OID 24580) +-- TOC entry 3352 (class 2604 OID 24580) -- Name: calendar_events id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1597,7 +1641,7 @@ ALTER TABLE ONLY public.calendar_events ALTER COLUMN id SET DEFAULT nextval('pub -- --- TOC entry 3352 (class 2604 OID 24593) +-- TOC entry 3357 (class 2604 OID 24593) -- Name: client_orders id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1605,7 +1649,7 @@ ALTER TABLE ONLY public.client_orders ALTER COLUMN id SET DEFAULT nextval('publi -- --- TOC entry 3357 (class 2604 OID 24608) +-- TOC entry 3362 (class 2604 OID 24608) -- Name: command_items id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1613,7 +1657,7 @@ ALTER TABLE ONLY public.command_items ALTER COLUMN id SET DEFAULT nextval('publi -- --- TOC entry 3358 (class 2604 OID 24617) +-- TOC entry 3363 (class 2604 OID 24617) -- Name: commands id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1621,7 +1665,7 @@ ALTER TABLE ONLY public.commands ALTER COLUMN id SET DEFAULT nextval('public.com -- --- TOC entry 3411 (class 2604 OID 57529) +-- TOC entry 3416 (class 2604 OID 57529) -- Name: customer_orders id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1629,7 +1673,7 @@ ALTER TABLE ONLY public.customer_orders ALTER COLUMN id SET DEFAULT nextval('pub -- --- TOC entry 3363 (class 2604 OID 24632) +-- TOC entry 3368 (class 2604 OID 24632) -- Name: customers id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1637,7 +1681,7 @@ ALTER TABLE ONLY public.customers ALTER COLUMN id SET DEFAULT nextval('public.cu -- --- TOC entry 3467 (class 2604 OID 2342916) +-- TOC entry 3471 (class 2604 OID 2342916) -- Name: dashboard_messages id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1645,7 +1689,7 @@ ALTER TABLE ONLY public.dashboard_messages ALTER COLUMN id SET DEFAULT nextval(' -- --- TOC entry 3444 (class 2604 OID 73737) +-- TOC entry 3448 (class 2604 OID 73737) -- Name: deliveries id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1653,7 +1697,7 @@ ALTER TABLE ONLY public.deliveries ALTER COLUMN id SET DEFAULT nextval('public.d -- --- TOC entry 3366 (class 2604 OID 24657) +-- TOC entry 3371 (class 2604 OID 24657) -- Name: delivery_items id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1661,7 +1705,7 @@ ALTER TABLE ONLY public.delivery_items ALTER COLUMN id SET DEFAULT nextval('publ -- --- TOC entry 3419 (class 2604 OID 57545) +-- TOC entry 3424 (class 2604 OID 57545) -- Name: dlc_products id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1669,7 +1713,7 @@ ALTER TABLE ONLY public.dlc_products ALTER COLUMN id SET DEFAULT nextval('public -- --- TOC entry 3386 (class 2604 OID 57454) +-- TOC entry 3391 (class 2604 OID 57454) -- Name: groups id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1677,7 +1721,7 @@ ALTER TABLE ONLY public.groups ALTER COLUMN id SET DEFAULT nextval('public.group -- --- TOC entry 3460 (class 2604 OID 2310149) +-- TOC entry 3464 (class 2604 OID 2310149) -- Name: invoice_verification_cache id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1685,7 +1729,7 @@ ALTER TABLE ONLY public.invoice_verification_cache ALTER COLUMN id SET DEFAULT n -- --- TOC entry 3456 (class 2604 OID 2285572) +-- TOC entry 3460 (class 2604 OID 2285572) -- Name: invoice_verifications id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1693,7 +1737,7 @@ ALTER TABLE ONLY public.invoice_verifications ALTER COLUMN id SET DEFAULT nextva -- --- TOC entry 3368 (class 2604 OID 24680) +-- TOC entry 3373 (class 2604 OID 24680) -- Name: invoices id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1701,7 +1745,7 @@ ALTER TABLE ONLY public.invoices ALTER COLUMN id SET DEFAULT nextval('public.inv -- --- TOC entry 3470 (class 2604 OID 2359300) +-- TOC entry 3474 (class 2604 OID 2359300) -- Name: migrations id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1709,7 +1753,7 @@ ALTER TABLE ONLY public.migrations ALTER COLUMN id SET DEFAULT nextval('public.m -- --- TOC entry 3395 (class 2604 OID 57467) +-- TOC entry 3400 (class 2604 OID 57467) -- Name: nocodb_config id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1717,7 +1761,7 @@ ALTER TABLE ONLY public.nocodb_config ALTER COLUMN id SET DEFAULT nextval('publi -- --- TOC entry 3404 (class 2604 OID 57491) +-- TOC entry 3409 (class 2604 OID 57491) -- Name: orders id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1725,7 +1769,7 @@ ALTER TABLE ONLY public.orders ALTER COLUMN id SET DEFAULT nextval('public.order -- --- TOC entry 3439 (class 2604 OID 57584) +-- TOC entry 3444 (class 2604 OID 57584) -- Name: permissions id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1733,7 +1777,7 @@ ALTER TABLE ONLY public.permissions ALTER COLUMN id SET DEFAULT nextval('public. -- --- TOC entry 3408 (class 2604 OID 57516) +-- TOC entry 3413 (class 2604 OID 57516) -- Name: publicities id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1741,7 +1785,7 @@ ALTER TABLE ONLY public.publicities ALTER COLUMN id SET DEFAULT nextval('public. -- --- TOC entry 3488 (class 2604 OID 2375684) +-- TOC entry 3492 (class 2604 OID 2375684) -- Name: reconciliation_comments id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1749,7 +1793,7 @@ ALTER TABLE ONLY public.reconciliation_comments ALTER COLUMN id SET DEFAULT next -- --- TOC entry 3433 (class 2604 OID 57568) +-- TOC entry 3438 (class 2604 OID 57568) -- Name: roles id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1757,7 +1801,7 @@ ALTER TABLE ONLY public.roles ALTER COLUMN id SET DEFAULT nextval('public.roles_ -- --- TOC entry 3373 (class 2604 OID 24695) +-- TOC entry 3378 (class 2604 OID 24695) -- Name: sav_tickets id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1765,7 +1809,7 @@ ALTER TABLE ONLY public.sav_tickets ALTER COLUMN id SET DEFAULT nextval('public. -- --- TOC entry 3378 (class 2604 OID 24710) +-- TOC entry 3383 (class 2604 OID 24710) -- Name: stores id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1773,7 +1817,7 @@ ALTER TABLE ONLY public.stores ALTER COLUMN id SET DEFAULT nextval('public.store -- --- TOC entry 3399 (class 2604 OID 57479) +-- TOC entry 3404 (class 2604 OID 57479) -- Name: suppliers id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1781,7 +1825,7 @@ ALTER TABLE ONLY public.suppliers ALTER COLUMN id SET DEFAULT nextval('public.su -- --- TOC entry 3428 (class 2604 OID 57555) +-- TOC entry 3433 (class 2604 OID 57555) -- Name: tasks id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1789,7 +1833,15 @@ ALTER TABLE ONLY public.tasks ALTER COLUMN id SET DEFAULT nextval('public.tasks_ -- --- TOC entry 3476 (class 2604 OID 2359337) +-- TOC entry 3495 (class 2604 OID 2383876) +-- Name: weather_settings id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.weather_settings ALTER COLUMN id SET DEFAULT nextval('public.weather_settings_id_seq'::regclass); + + +-- +-- TOC entry 3480 (class 2604 OID 2359337) -- Name: webhook_bap_config id; Type: DEFAULT; Schema: public; Owner: neondb_owner -- @@ -1797,7 +1849,7 @@ ALTER TABLE ONLY public.webhook_bap_config ALTER COLUMN id SET DEFAULT nextval(' -- --- TOC entry 3817 (class 0 OID 2359307) +-- TOC entry 3831 (class 0 OID 2359307) -- Dependencies: 272 -- Data for Name: announcements; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -1807,7 +1859,7 @@ COPY public.announcements (id, title, content, priority, author_id, group_id, cr -- --- TOC entry 3821 (class 0 OID 2367489) +-- TOC entry 3835 (class 0 OID 2367489) -- Dependencies: 276 -- Data for Name: avoirs; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -1817,7 +1869,7 @@ COPY public.avoirs (id, supplier_id, group_id, invoice_reference, amount, commen -- --- TOC entry 3761 (class 0 OID 24577) +-- TOC entry 3775 (class 0 OID 24577) -- Dependencies: 216 -- Data for Name: calendar_events; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -1833,7 +1885,7 @@ COPY public.calendar_events (id, title, description, user_id, store_id, start_da -- --- TOC entry 3763 (class 0 OID 24590) +-- TOC entry 3777 (class 0 OID 24590) -- Dependencies: 218 -- Data for Name: client_orders; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -1848,7 +1900,7 @@ COPY public.client_orders (id, order_number, customer_id, store_id, user_id, sta -- --- TOC entry 3765 (class 0 OID 24605) +-- TOC entry 3779 (class 0 OID 24605) -- Dependencies: 220 -- Data for Name: command_items; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -1872,7 +1924,7 @@ COPY public.command_items (id, command_id, product_name, product_code, quantity, -- --- TOC entry 3767 (class 0 OID 24614) +-- TOC entry 3781 (class 0 OID 24614) -- Dependencies: 222 -- Data for Name: commands; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -1887,7 +1939,7 @@ COPY public.commands (id, command_number, supplier_id, store_id, user_id, status -- --- TOC entry 3792 (class 0 OID 57526) +-- TOC entry 3806 (class 0 OID 57526) -- Dependencies: 247 -- Data for Name: customer_orders; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -1902,7 +1954,7 @@ COPY public.customer_orders (id, order_taker, customer_name, customer_phone, cus -- --- TOC entry 3769 (class 0 OID 24629) +-- TOC entry 3783 (class 0 OID 24629) -- Dependencies: 224 -- Data for Name: customers; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -1920,7 +1972,7 @@ COPY public.customers (id, first_name, last_name, email, phone, address, store_i -- --- TOC entry 3813 (class 0 OID 2342913) +-- TOC entry 3827 (class 0 OID 2342913) -- Dependencies: 268 -- Data for Name: dashboard_messages; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -1930,28 +1982,28 @@ COPY public.dashboard_messages (id, title, content, type, store_id, created_by, -- --- TOC entry 3807 (class 0 OID 819214) +-- TOC entry 3821 (class 0 OID 819214) -- Dependencies: 262 -- Data for Name: database_backups; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- COPY public.database_backups (id, filename, description, size, created_at, created_by, tables_count, status, backup_type) FROM stdin; -V8T82lGYiVOyqw2-PwZsZ backup_automatic_2025-09-11T05-59-54-844Z.sql Automatique backup du 11/09/2025 121198 2025-09-11 05:59:54.880714 system 36 completed automatic -AVRKx6fkmqgASTdspwUkz backup_automatic_2025-09-12T10-06-11-906Z.sql Automatique backup du 12/09/2025 0 2025-09-12 10:06:11.934102 system 0 creating automatic -_nmeY9-4XKisNTkPDKvmM backup_automatic_2025-09-02T02-46-17-030Z.sql Automatique backup du 02/09/2025 104709 2025-09-02 02:46:17.044913 system 31 completed automatic -ua9Z_UKJ8qDpu78wslJbI backup_automatic_2025-09-03T08-16-31-540Z.sql Automatique backup du 03/09/2025 104873 2025-09-03 08:16:31.55345 system 31 completed automatic -f-mPzyfJ0jAh3N3cCyKGm backup_automatic_2025-09-04T07-09-57-386Z.sql Automatique backup du 04/09/2025 114696 2025-09-04 07:09:57.42171 system 34 completed automatic -Eyf_R0g6S9fWiyctBmcFv backup_automatic_2025-09-05T05-12-40-865Z.sql Automatique backup du 05/09/2025 114861 2025-09-05 05:12:40.898026 system 34 completed automatic -uhFPspueUqUrvb6ZUZEIH backup_automatic_2025-09-06T07-22-50-169Z.sql Automatique backup du 06/09/2025 115026 2025-09-06 07:22:50.200602 system 34 completed automatic -vSz_RhYfKOiZZ9iOa--i3 backup_automatic_2025-09-07T06-43-47-902Z.sql Automatique backup du 07/09/2025 115191 2025-09-07 06:43:47.933813 system 34 completed automatic -dO8X9cwfjAYIo3Vf5xhN5 backup_automatic_2025-09-08T08-16-07-330Z.sql Automatique backup du 08/09/2025 115196 2025-09-08 08:16:07.366382 system 34 completed automatic -lMiIY4CyjQz3je-1ZkmPp backup_automatic_2025-09-09T05-44-46-213Z.sql Automatique backup du 09/09/2025 117617 2025-09-09 05:44:46.240552 system 35 completed automatic --ExxMCChA_LAMKmXOLbw2 backup_automatic_2025-09-10T05-59-02-237Z.sql Automatique backup du 10/09/2025 117601 2025-09-10 05:59:02.267425 system 35 completed automatic +AVRKx6fkmqgASTdspwUkz backup_automatic_2025-09-12T10-06-11-906Z.sql Automatique backup du 12/09/2025 129519 2025-09-12 10:06:11.934102 system 36 completed automatic +tW8PypCgNiWzbeNlmffB5 backup_automatic_2025-09-13T08-56-08-317Z.sql Automatique backup du 13/09/2025 129519 2025-09-13 08:56:08.313083 system 36 completed automatic +o-SjCztDrO6s4euLXW89b backup_automatic_2025-09-14T06-47-09-384Z.sql Automatique backup du 14/09/2025 129520 2025-09-14 06:47:09.423331 system 36 completed automatic +6kVpBxcqhbDpUojzGo4Is backup_automatic_2025-09-15T06-06-14-991Z.sql Automatique backup du 15/09/2025 129521 2025-09-15 06:06:15.021982 system 36 completed automatic +3BXbMdVkhtSryOk3HRGkp backup_automatic_2025-09-17T21-56-37-345Z.sql Automatique backup du 17/09/2025 131556 2025-09-17 21:56:37.375543 system 37 completed automatic +FBwVzTaCwB4AS6GVU6SJ9 backup_automatic_2025-09-19T06-11-49-625Z.sql Automatique backup du 19/09/2025 131556 2025-09-19 06:11:49.678533 system 37 completed automatic +cICxm578x1hf1vPaQJROL backup_automatic_2025-09-20T02-02-55-254Z.sql Automatique backup du 20/09/2025 131556 2025-09-20 02:02:55.280114 system 37 completed automatic +MDAobkh74ZgZZI9oS2XCI backup_automatic_2025-09-21T06-22-14-480Z.sql Automatique backup du 21/09/2025 131555 2025-09-21 06:22:14.50849 system 37 completed automatic +V__NOBc-Hg8Kr9yiiGqna backup_automatic_2025-09-22T05-28-11-122Z.sql Automatique backup du 22/09/2025 131553 2025-09-22 05:28:11.1653 system 37 completed automatic +NJ_zevppkB1fhTqNVpHVQ backup_automatic_2025-09-23T08-42-36-690Z.sql Automatique backup du 23/09/2025 131567 2025-09-23 08:42:36.721996 system 37 completed automatic +T5omweVqNbmOb3c1fcDeC backup_automatic_2025-09-24T06-04-17-915Z.sql Automatique backup du 24/09/2025 0 2025-09-24 06:04:17.944287 system 0 creating automatic \. -- --- TOC entry 3804 (class 0 OID 73734) +-- TOC entry 3818 (class 0 OID 73734) -- Dependencies: 259 -- Data for Name: deliveries; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -1991,11 +2043,12 @@ COPY public.deliveries (id, order_id, supplier_id, group_id, scheduled_date, del 131 \N 1 1 2025-08-21 \N 3 palettes planned Test même facture cache \N \N FACT2025-001 1500.50 f \N 1 2025-08-17 16:04:29.232538 2025-08-17 16:04:29.232538 132 \N 1 1 2025-08-20 \N 5 palettes planned Test final cache \N \N FACT2025-002 2500.50 f \N 1 2025-08-17 16:06:06.113457 2025-08-17 16:06:06.113457 133 \N 1 1 2025-08-21 \N 3 palettes planned Test même facture cache final \N \N FACT2025-002 2500.50 f \N 1 2025-08-17 16:06:07.49284 2025-08-17 16:06:07.49284 +134 9 1 1 2025-09-30 \N 3 palettes planned \N \N \N \N \N f \N admin_local 2025-09-23 09:40:01.331214 2025-09-23 09:40:01.331214 \. -- --- TOC entry 3771 (class 0 OID 24654) +-- TOC entry 3785 (class 0 OID 24654) -- Dependencies: 226 -- Data for Name: delivery_items; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2005,7 +2058,7 @@ COPY public.delivery_items (id, delivery_id, command_item_id, product_name, quan -- --- TOC entry 3794 (class 0 OID 57542) +-- TOC entry 3808 (class 0 OID 57542) -- Dependencies: 249 -- Data for Name: dlc_products; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2021,7 +2074,7 @@ COPY public.dlc_products (id, name, gencode, dlc_date, quantity, store_id, creat -- --- TOC entry 3782 (class 0 OID 57451) +-- TOC entry 3796 (class 0 OID 57451) -- Dependencies: 237 -- Data for Name: groups; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2034,7 +2087,7 @@ COPY public.groups (id, name, color, address, phone, email, nocodb_config_id, no -- --- TOC entry 3811 (class 0 OID 2310146) +-- TOC entry 3825 (class 0 OID 2310146) -- Dependencies: 266 -- Data for Name: invoice_verification_cache; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2044,7 +2097,7 @@ COPY public.invoice_verification_cache (id, cache_key, group_id, invoice_referen -- --- TOC entry 3809 (class 0 OID 2285569) +-- TOC entry 3823 (class 0 OID 2285569) -- Dependencies: 264 -- Data for Name: invoice_verifications; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2059,7 +2112,7 @@ COPY public.invoice_verifications (id, delivery_id, group_id, invoice_reference, -- --- TOC entry 3773 (class 0 OID 24677) +-- TOC entry 3787 (class 0 OID 24677) -- Dependencies: 228 -- Data for Name: invoices; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2069,7 +2122,7 @@ COPY public.invoices (id, invoice_number, command_id, delivery_id, store_id, use -- --- TOC entry 3815 (class 0 OID 2359297) +-- TOC entry 3829 (class 0 OID 2359297) -- Dependencies: 270 -- Data for Name: migrations; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2084,7 +2137,7 @@ COPY public.migrations (id, filename, executed_at) FROM stdin; -- --- TOC entry 3784 (class 0 OID 57464) +-- TOC entry 3798 (class 0 OID 57464) -- Dependencies: 239 -- Data for Name: nocodb_config; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2095,7 +2148,7 @@ COPY public.nocodb_config (id, name, base_url, project_id, api_token, descriptio -- --- TOC entry 3788 (class 0 OID 57488) +-- TOC entry 3802 (class 0 OID 57488) -- Dependencies: 243 -- Data for Name: orders; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2109,12 +2162,12 @@ COPY public.orders (id, supplier_id, group_id, planned_date, quantity, unit, sta 6 3 4 2025-07-09 \N \N pending \N 1 2025-07-24 09:34:55.314888 2025-07-24 09:34:55.314888 7 1 2 2025-07-25 5 palettes pending Test commande pour manager groupe 2 test_manager 2025-07-24 10:29:44.602606 2025-07-24 10:29:44.602606 8 1 4 2025-07-10 \N \N delivered \N 1 2025-07-25 12:42:09.377059 2025-07-25 12:42:28.781778 -9 1 1 2025-07-09 \N \N pending \N 1 2025-07-27 16:09:15.10213 2025-07-27 16:09:15.10213 +9 1 1 2025-07-09 \N \N planned \N 1 2025-07-27 16:09:15.10213 2025-09-23 09:40:01.371 \. -- --- TOC entry 3800 (class 0 OID 57581) +-- TOC entry 3814 (class 0 OID 57581) -- Dependencies: 255 -- Data for Name: permissions; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2178,7 +2231,7 @@ COPY public.permissions (id, name, display_name, description, category, action, -- --- TOC entry 3790 (class 0 OID 57513) +-- TOC entry 3804 (class 0 OID 57513) -- Dependencies: 245 -- Data for Name: publicities; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2188,7 +2241,6 @@ COPY public.publicities (id, pub_number, designation, title, description, start_ 4 TEST-FORCE-PROD Test Force Production \N \N 2025-07-23 2025-07-29 2025 1 2025-07-19 22:39:13.937601 2025-07-19 22:39:13.937601 5 TEST-ERROR Test Error \N \N 2025-07-24 2025-07-30 2025 1 2025-07-19 22:54:05.573607 2025-07-19 22:54:05.573607 6 2501 wxcvwxc \N \N 2025-07-01 2025-07-06 2025 1 2025-07-19 22:55:06.907432 2025-07-19 22:55:06.907432 -7 DEBUG-PROD Debug Production \N \N 2025-07-25 2025-07-31 2025 1 2025-07-19 22:56:05.296286 2025-07-19 22:56:05.296286 9 FINAL-TEST Test Final Production \N \N 2025-07-27 2025-08-02 2025 1 2025-07-19 23:03:21.499342 2025-07-19 23:03:21.499342 8 DIAG-PROD Diagnostic Production \N \N 2025-07-26 2025-08-01 2025 1 2025-07-19 22:58:31.680917 2025-07-20 09:09:26.486 2 TEST123 Test \N \N 2025-07-20 2025-07-25 2025 1 2025-07-19 22:38:10.039397 2025-07-20 09:13:42.375 @@ -2197,37 +2249,37 @@ COPY public.publicities (id, pub_number, designation, title, description, start_ -- --- TOC entry 3802 (class 0 OID 57615) +-- TOC entry 3816 (class 0 OID 57615) -- Dependencies: 257 -- Data for Name: publicity_participations; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- -COPY public.publicity_participations (publicity_id, group_id, created_at) FROM stdin; -1 5 2025-07-19 21:38:15.036215 -3 4 2025-07-19 22:38:52.193439 -4 4 2025-07-19 22:39:13.987098 -5 4 2025-07-19 22:54:05.624748 -6 5 2025-07-19 22:55:06.955089 -7 4 2025-07-19 22:56:05.344704 -9 5 2025-07-19 23:03:21.551156 -2 4 2025-07-20 09:13:42.436078 -2 5 2025-07-20 09:13:42.436078 -10 5 2025-07-22 15:37:06.737248 +COPY public.publicity_participations (publicity_id, group_id) FROM stdin; +1 5 +3 4 +4 4 +5 4 +6 5 +9 5 +2 4 +2 5 +10 5 \. -- --- TOC entry 3823 (class 0 OID 2375681) +-- TOC entry 3837 (class 0 OID 2375681) -- Dependencies: 278 -- Data for Name: reconciliation_comments; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- COPY public.reconciliation_comments (id, content, type, delivery_id, author_id, group_id, created_at, updated_at) FROM stdin; +1 Test commentaire pour vérifier la mise à jour de l'icône info 126 admin_local 1 2025-09-23 13:53:06.976071 2025-09-23 13:53:06.976071 \. -- --- TOC entry 3801 (class 0 OID 57609) +-- TOC entry 3815 (class 0 OID 57609) -- Dependencies: 256 -- Data for Name: role_permissions; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2405,7 +2457,7 @@ COPY public.role_permissions (role_id, permission_id, created_at) FROM stdin; -- --- TOC entry 3798 (class 0 OID 57565) +-- TOC entry 3812 (class 0 OID 57565) -- Dependencies: 253 -- Data for Name: roles; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2419,7 +2471,7 @@ COPY public.roles (id, name, display_name, description, color, is_system, is_act -- --- TOC entry 3775 (class 0 OID 24692) +-- TOC entry 3789 (class 0 OID 24692) -- Dependencies: 230 -- Data for Name: sav_tickets; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2434,7 +2486,7 @@ COPY public.sav_tickets (id, ticket_number, customer_id, store_id, user_id, assi -- --- TOC entry 3778 (class 0 OID 32770) +-- TOC entry 3792 (class 0 OID 32770) -- Dependencies: 233 -- Data for Name: session; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2445,7 +2497,7 @@ COPY public.session (sid, sess, expire) FROM stdin; -- --- TOC entry 3779 (class 0 OID 57427) +-- TOC entry 3793 (class 0 OID 57427) -- Dependencies: 234 -- Data for Name: sessions; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2455,7 +2507,7 @@ COPY public.sessions (sid, sess, expire) FROM stdin; -- --- TOC entry 3777 (class 0 OID 24707) +-- TOC entry 3791 (class 0 OID 24707) -- Dependencies: 232 -- Data for Name: stores; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2470,7 +2522,7 @@ COPY public.stores (id, name, address, phone, email, is_active, created_at, upda -- --- TOC entry 3786 (class 0 OID 57476) +-- TOC entry 3800 (class 0 OID 57476) -- Dependencies: 241 -- Data for Name: suppliers; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2485,7 +2537,7 @@ COPY public.suppliers (id, name, contact, phone, has_dlc, created_at, updated_at -- --- TOC entry 3796 (class 0 OID 57552) +-- TOC entry 3810 (class 0 OID 57552) -- Dependencies: 251 -- Data for Name: tasks; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2578,7 +2630,7 @@ COPY public.tasks (id, title, description, assigned_to, due_date, priority, stat -- --- TOC entry 3806 (class 0 OID 720923) +-- TOC entry 3820 (class 0 OID 720923) -- Dependencies: 261 -- Data for Name: user_groups; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2594,7 +2646,7 @@ _1753185587842 1 \N 2025-07-22 11:59:52.30638 -- --- TOC entry 3805 (class 0 OID 720910) +-- TOC entry 3819 (class 0 OID 720910) -- Dependencies: 260 -- Data for Name: user_roles; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2604,7 +2656,7 @@ COPY public.user_roles (user_id, role_id, assigned_by, assigned_at) FROM stdin; -- --- TOC entry 3780 (class 0 OID 57435) +-- TOC entry 3794 (class 0 OID 57435) -- Dependencies: 235 -- Data for Name: users; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2616,12 +2668,23 @@ manager_demo manager manager@logiflow.fr Jean Manager Jean Manager \N $2b$10$K1B ff292_employee ff292 ff292@logiflow.com Employee Frouard Employee Frouard \N $2b$10$K1BL9HqNqFp2/Xb1QgXzDe8XQBOKcNKJ8vDbKcBbCJpWlGsQp3X3W employee t 2025-07-22 09:18:48.919512 2025-07-22 09:30:26.116 _1753182518439 Nicolas nicolas@logiflow.fr Nicolas Directeur Nicolas Directeur \N $2b$10$K1BL9HqNqFp2/Xb1QgXzDe8XQBOKcNKJ8vDbKcBbCJpWlGsQp3X3W directeur t 2025-07-22 11:49:44.596384 2025-07-22 12:07:05.346 directeur_demo directeur directeur@logiflow.fr Pierre Directeur Pierre Directeur \N 710984331d05d1edeede5de8117f72ee74dcf0450a97ec5f945323a65268849807d0d4e4256192ac8da3f101fb1f54fd7780c91639d946ac1ff4071c0b6592ab.138cf15d1b1d88f6148f180864cb2f51 directeur t 2025-07-22 10:38:26.043656 2025-07-22 12:06:07.324 -1 admin admin@logiflow.com Admin System Michael SCHAL \N e31f77538c9ba3b4f02c74d2599c01c30b20daa1bacd28f66f256a37537542a5872b87219b38f39ec73793edf8caa8bb9c0d0815635f0332b47cf2edc6a389a3.36b85d2975a50844c490936e0afb3ef8 admin f 2025-07-19 18:54:37.64216 2025-08-17 16:02:53.559 +admin_local admin admin@logiflow.com \N Administrateur Système \N 724b51c8c2cfe888c9881bd7b70eb6467c6f719ac0ef698493718095c21db94ac737773e1fd830ead26bcb12e33f613d08feefc7dd7e5f7b82e5d74f51f0e057.c139b9fafa8a156f5049a06b53c4e4ee admin f 2025-09-22 14:57:03.467386 2025-09-22 14:57:03.467386 \. -- --- TOC entry 3819 (class 0 OID 2359334) +-- TOC entry 3839 (class 0 OID 2383873) +-- Dependencies: 280 +-- Data for Name: weather_settings; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.weather_settings (id, api_key, default_city, units, update_interval, is_active, created_at, updated_at, location) FROM stdin; +1 6PSHYLBJB9EEYNZ7NDQ5BPGBZ Paris metric 30 t 2025-09-15 08:40:40.083931 2025-09-15 08:40:40.083931 Nancy, France +\. + + +-- +-- TOC entry 3833 (class 0 OID 2359334) -- Dependencies: 274 -- Data for Name: webhook_bap_config; Type: TABLE DATA; Schema: public; Owner: neondb_owner -- @@ -2632,7 +2695,7 @@ COPY public.webhook_bap_config (id, name, webhook_url, description, is_active, c -- --- TOC entry 3866 (class 0 OID 0) +-- TOC entry 3883 (class 0 OID 0) -- Dependencies: 271 -- Name: announcements_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2641,7 +2704,7 @@ SELECT pg_catalog.setval('public.announcements_id_seq', 1, false); -- --- TOC entry 3867 (class 0 OID 0) +-- TOC entry 3884 (class 0 OID 0) -- Dependencies: 275 -- Name: avoirs_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2650,7 +2713,7 @@ SELECT pg_catalog.setval('public.avoirs_id_seq', 1, false); -- --- TOC entry 3868 (class 0 OID 0) +-- TOC entry 3885 (class 0 OID 0) -- Dependencies: 215 -- Name: calendar_events_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2659,7 +2722,7 @@ SELECT pg_catalog.setval('public.calendar_events_id_seq', 6, true); -- --- TOC entry 3869 (class 0 OID 0) +-- TOC entry 3886 (class 0 OID 0) -- Dependencies: 217 -- Name: client_orders_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2668,7 +2731,7 @@ SELECT pg_catalog.setval('public.client_orders_id_seq', 5, true); -- --- TOC entry 3870 (class 0 OID 0) +-- TOC entry 3887 (class 0 OID 0) -- Dependencies: 219 -- Name: command_items_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2677,7 +2740,7 @@ SELECT pg_catalog.setval('public.command_items_id_seq', 14, true); -- --- TOC entry 3871 (class 0 OID 0) +-- TOC entry 3888 (class 0 OID 0) -- Dependencies: 221 -- Name: commands_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2686,7 +2749,7 @@ SELECT pg_catalog.setval('public.commands_id_seq', 8, true); -- --- TOC entry 3872 (class 0 OID 0) +-- TOC entry 3889 (class 0 OID 0) -- Dependencies: 246 -- Name: customer_orders_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2695,7 +2758,7 @@ SELECT pg_catalog.setval('public.customer_orders_id_seq', 2, true); -- --- TOC entry 3873 (class 0 OID 0) +-- TOC entry 3890 (class 0 OID 0) -- Dependencies: 223 -- Name: customers_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2704,7 +2767,7 @@ SELECT pg_catalog.setval('public.customers_id_seq', 8, true); -- --- TOC entry 3874 (class 0 OID 0) +-- TOC entry 3891 (class 0 OID 0) -- Dependencies: 267 -- Name: dashboard_messages_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2713,16 +2776,16 @@ SELECT pg_catalog.setval('public.dashboard_messages_id_seq', 2, true); -- --- TOC entry 3875 (class 0 OID 0) +-- TOC entry 3892 (class 0 OID 0) -- Dependencies: 258 -- Name: deliveries_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- -SELECT pg_catalog.setval('public.deliveries_id_seq', 133, true); +SELECT pg_catalog.setval('public.deliveries_id_seq', 134, true); -- --- TOC entry 3876 (class 0 OID 0) +-- TOC entry 3893 (class 0 OID 0) -- Dependencies: 225 -- Name: delivery_items_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2731,7 +2794,7 @@ SELECT pg_catalog.setval('public.delivery_items_id_seq', 1, false); -- --- TOC entry 3877 (class 0 OID 0) +-- TOC entry 3894 (class 0 OID 0) -- Dependencies: 248 -- Name: dlc_products_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2740,7 +2803,7 @@ SELECT pg_catalog.setval('public.dlc_products_id_seq', 17, true); -- --- TOC entry 3878 (class 0 OID 0) +-- TOC entry 3895 (class 0 OID 0) -- Dependencies: 236 -- Name: groups_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2749,16 +2812,16 @@ SELECT pg_catalog.setval('public.groups_id_seq', 5, true); -- --- TOC entry 3879 (class 0 OID 0) +-- TOC entry 3896 (class 0 OID 0) -- Dependencies: 265 -- Name: invoice_verification_cache_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- -SELECT pg_catalog.setval('public.invoice_verification_cache_id_seq', 1, false); +SELECT pg_catalog.setval('public.invoice_verification_cache_id_seq', 17, true); -- --- TOC entry 3880 (class 0 OID 0) +-- TOC entry 3897 (class 0 OID 0) -- Dependencies: 263 -- Name: invoice_verifications_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2767,7 +2830,7 @@ SELECT pg_catalog.setval('public.invoice_verifications_id_seq', 15, true); -- --- TOC entry 3881 (class 0 OID 0) +-- TOC entry 3898 (class 0 OID 0) -- Dependencies: 227 -- Name: invoices_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2776,7 +2839,7 @@ SELECT pg_catalog.setval('public.invoices_id_seq', 1, false); -- --- TOC entry 3882 (class 0 OID 0) +-- TOC entry 3899 (class 0 OID 0) -- Dependencies: 269 -- Name: migrations_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2785,7 +2848,7 @@ SELECT pg_catalog.setval('public.migrations_id_seq', 5, true); -- --- TOC entry 3883 (class 0 OID 0) +-- TOC entry 3900 (class 0 OID 0) -- Dependencies: 238 -- Name: nocodb_config_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2794,7 +2857,7 @@ SELECT pg_catalog.setval('public.nocodb_config_id_seq', 1, true); -- --- TOC entry 3884 (class 0 OID 0) +-- TOC entry 3901 (class 0 OID 0) -- Dependencies: 242 -- Name: orders_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2803,7 +2866,7 @@ SELECT pg_catalog.setval('public.orders_id_seq', 9, true); -- --- TOC entry 3885 (class 0 OID 0) +-- TOC entry 3902 (class 0 OID 0) -- Dependencies: 254 -- Name: permissions_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2812,7 +2875,7 @@ SELECT pg_catalog.setval('public.permissions_id_seq', 108, true); -- --- TOC entry 3886 (class 0 OID 0) +-- TOC entry 3903 (class 0 OID 0) -- Dependencies: 244 -- Name: publicities_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2821,16 +2884,16 @@ SELECT pg_catalog.setval('public.publicities_id_seq', 10, true); -- --- TOC entry 3887 (class 0 OID 0) +-- TOC entry 3904 (class 0 OID 0) -- Dependencies: 277 -- Name: reconciliation_comments_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- -SELECT pg_catalog.setval('public.reconciliation_comments_id_seq', 1, false); +SELECT pg_catalog.setval('public.reconciliation_comments_id_seq', 1, true); -- --- TOC entry 3888 (class 0 OID 0) +-- TOC entry 3905 (class 0 OID 0) -- Dependencies: 252 -- Name: roles_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2839,7 +2902,7 @@ SELECT pg_catalog.setval('public.roles_id_seq', 11, true); -- --- TOC entry 3889 (class 0 OID 0) +-- TOC entry 3906 (class 0 OID 0) -- Dependencies: 229 -- Name: sav_tickets_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2848,7 +2911,7 @@ SELECT pg_catalog.setval('public.sav_tickets_id_seq', 8, true); -- --- TOC entry 3890 (class 0 OID 0) +-- TOC entry 3907 (class 0 OID 0) -- Dependencies: 231 -- Name: stores_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2857,7 +2920,7 @@ SELECT pg_catalog.setval('public.stores_id_seq', 5, true); -- --- TOC entry 3891 (class 0 OID 0) +-- TOC entry 3908 (class 0 OID 0) -- Dependencies: 240 -- Name: suppliers_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2866,7 +2929,7 @@ SELECT pg_catalog.setval('public.suppliers_id_seq', 5, true); -- --- TOC entry 3892 (class 0 OID 0) +-- TOC entry 3909 (class 0 OID 0) -- Dependencies: 250 -- Name: tasks_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2875,7 +2938,16 @@ SELECT pg_catalog.setval('public.tasks_id_seq', 96, true); -- --- TOC entry 3893 (class 0 OID 0) +-- TOC entry 3910 (class 0 OID 0) +-- Dependencies: 279 +-- Name: weather_settings_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.weather_settings_id_seq', 1, true); + + +-- +-- TOC entry 3911 (class 0 OID 0) -- Dependencies: 273 -- Name: webhook_bap_config_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner -- @@ -2884,7 +2956,7 @@ SELECT pg_catalog.setval('public.webhook_bap_config_id_seq', 1, true); -- --- TOC entry 3596 (class 2606 OID 2359318) +-- TOC entry 3608 (class 2606 OID 2359318) -- Name: announcements announcements_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -2893,7 +2965,7 @@ ALTER TABLE ONLY public.announcements -- --- TOC entry 3604 (class 2606 OID 2367502) +-- TOC entry 3616 (class 2606 OID 2367502) -- Name: avoirs avoirs_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -2902,7 +2974,7 @@ ALTER TABLE ONLY public.avoirs -- --- TOC entry 3496 (class 2606 OID 24588) +-- TOC entry 3508 (class 2606 OID 24588) -- Name: calendar_events calendar_events_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -2911,7 +2983,7 @@ ALTER TABLE ONLY public.calendar_events -- --- TOC entry 3498 (class 2606 OID 24603) +-- TOC entry 3510 (class 2606 OID 24603) -- Name: client_orders client_orders_order_number_unique; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -2920,7 +2992,7 @@ ALTER TABLE ONLY public.client_orders -- --- TOC entry 3500 (class 2606 OID 24601) +-- TOC entry 3512 (class 2606 OID 24601) -- Name: client_orders client_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -2929,7 +3001,7 @@ ALTER TABLE ONLY public.client_orders -- --- TOC entry 3502 (class 2606 OID 24612) +-- TOC entry 3514 (class 2606 OID 24612) -- Name: command_items command_items_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -2938,7 +3010,7 @@ ALTER TABLE ONLY public.command_items -- --- TOC entry 3504 (class 2606 OID 24627) +-- TOC entry 3516 (class 2606 OID 24627) -- Name: commands commands_command_number_unique; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -2947,7 +3019,7 @@ ALTER TABLE ONLY public.commands -- --- TOC entry 3506 (class 2606 OID 24625) +-- TOC entry 3518 (class 2606 OID 24625) -- Name: commands commands_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -2956,7 +3028,7 @@ ALTER TABLE ONLY public.commands -- --- TOC entry 3545 (class 2606 OID 57540) +-- TOC entry 3557 (class 2606 OID 57540) -- Name: customer_orders customer_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -2965,7 +3037,7 @@ ALTER TABLE ONLY public.customer_orders -- --- TOC entry 3508 (class 2606 OID 24638) +-- TOC entry 3520 (class 2606 OID 24638) -- Name: customers customers_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -2974,7 +3046,7 @@ ALTER TABLE ONLY public.customers -- --- TOC entry 3587 (class 2606 OID 2342922) +-- TOC entry 3599 (class 2606 OID 2342922) -- Name: dashboard_messages dashboard_messages_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -2983,7 +3055,7 @@ ALTER TABLE ONLY public.dashboard_messages -- --- TOC entry 3573 (class 2606 OID 819224) +-- TOC entry 3585 (class 2606 OID 819224) -- Name: database_backups database_backups_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -2992,7 +3064,7 @@ ALTER TABLE ONLY public.database_backups -- --- TOC entry 3564 (class 2606 OID 73746) +-- TOC entry 3576 (class 2606 OID 73746) -- Name: deliveries deliveries_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3001,7 +3073,7 @@ ALTER TABLE ONLY public.deliveries -- --- TOC entry 3510 (class 2606 OID 24662) +-- TOC entry 3522 (class 2606 OID 24662) -- Name: delivery_items delivery_items_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3010,7 +3082,7 @@ ALTER TABLE ONLY public.delivery_items -- --- TOC entry 3547 (class 2606 OID 57550) +-- TOC entry 3559 (class 2606 OID 57550) -- Name: dlc_products dlc_products_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3019,7 +3091,7 @@ ALTER TABLE ONLY public.dlc_products -- --- TOC entry 3533 (class 2606 OID 57462) +-- TOC entry 3545 (class 2606 OID 57462) -- Name: groups groups_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3028,7 +3100,7 @@ ALTER TABLE ONLY public.groups -- --- TOC entry 3583 (class 2606 OID 2310156) +-- TOC entry 3595 (class 2606 OID 2310156) -- Name: invoice_verification_cache invoice_verification_cache_cache_key_key; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3037,7 +3109,7 @@ ALTER TABLE ONLY public.invoice_verification_cache -- --- TOC entry 3585 (class 2606 OID 2310154) +-- TOC entry 3597 (class 2606 OID 2310154) -- Name: invoice_verification_cache invoice_verification_cache_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3046,7 +3118,7 @@ ALTER TABLE ONLY public.invoice_verification_cache -- --- TOC entry 3577 (class 2606 OID 2285579) +-- TOC entry 3589 (class 2606 OID 2285579) -- Name: invoice_verifications invoice_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3055,7 +3127,7 @@ ALTER TABLE ONLY public.invoice_verifications -- --- TOC entry 3512 (class 2606 OID 24690) +-- TOC entry 3524 (class 2606 OID 24690) -- Name: invoices invoices_invoice_number_unique; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3064,7 +3136,7 @@ ALTER TABLE ONLY public.invoices -- --- TOC entry 3514 (class 2606 OID 24688) +-- TOC entry 3526 (class 2606 OID 24688) -- Name: invoices invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3073,7 +3145,7 @@ ALTER TABLE ONLY public.invoices -- --- TOC entry 3592 (class 2606 OID 2359305) +-- TOC entry 3604 (class 2606 OID 2359305) -- Name: migrations migrations_filename_key; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3082,7 +3154,7 @@ ALTER TABLE ONLY public.migrations -- --- TOC entry 3594 (class 2606 OID 2359303) +-- TOC entry 3606 (class 2606 OID 2359303) -- Name: migrations migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3091,7 +3163,7 @@ ALTER TABLE ONLY public.migrations -- --- TOC entry 3535 (class 2606 OID 57474) +-- TOC entry 3547 (class 2606 OID 57474) -- Name: nocodb_config nocodb_config_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3100,7 +3172,7 @@ ALTER TABLE ONLY public.nocodb_config -- --- TOC entry 3539 (class 2606 OID 57498) +-- TOC entry 3551 (class 2606 OID 57498) -- Name: orders orders_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3109,7 +3181,7 @@ ALTER TABLE ONLY public.orders -- --- TOC entry 3556 (class 2606 OID 57592) +-- TOC entry 3568 (class 2606 OID 57592) -- Name: permissions permissions_name_key; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3118,7 +3190,7 @@ ALTER TABLE ONLY public.permissions -- --- TOC entry 3558 (class 2606 OID 57590) +-- TOC entry 3570 (class 2606 OID 57590) -- Name: permissions permissions_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3127,7 +3199,7 @@ ALTER TABLE ONLY public.permissions -- --- TOC entry 3541 (class 2606 OID 57522) +-- TOC entry 3553 (class 2606 OID 57522) -- Name: publicities publicities_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3136,7 +3208,7 @@ ALTER TABLE ONLY public.publicities -- --- TOC entry 3543 (class 2606 OID 57524) +-- TOC entry 3555 (class 2606 OID 57524) -- Name: publicities publicities_pub_number_key; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3145,7 +3217,7 @@ ALTER TABLE ONLY public.publicities -- --- TOC entry 3562 (class 2606 OID 57620) +-- TOC entry 3574 (class 2606 OID 57620) -- Name: publicity_participations publicity_participations_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3154,7 +3226,7 @@ ALTER TABLE ONLY public.publicity_participations -- --- TOC entry 3606 (class 2606 OID 2375691) +-- TOC entry 3618 (class 2606 OID 2375691) -- Name: reconciliation_comments reconciliation_comments_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3163,7 +3235,7 @@ ALTER TABLE ONLY public.reconciliation_comments -- --- TOC entry 3560 (class 2606 OID 57614) +-- TOC entry 3572 (class 2606 OID 57614) -- Name: role_permissions role_permissions_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3172,7 +3244,7 @@ ALTER TABLE ONLY public.role_permissions -- --- TOC entry 3552 (class 2606 OID 57579) +-- TOC entry 3564 (class 2606 OID 57579) -- Name: roles roles_name_key; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3181,7 +3253,7 @@ ALTER TABLE ONLY public.roles -- --- TOC entry 3554 (class 2606 OID 57577) +-- TOC entry 3566 (class 2606 OID 57577) -- Name: roles roles_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3190,7 +3262,7 @@ ALTER TABLE ONLY public.roles -- --- TOC entry 3516 (class 2606 OID 24703) +-- TOC entry 3528 (class 2606 OID 24703) -- Name: sav_tickets sav_tickets_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3199,7 +3271,7 @@ ALTER TABLE ONLY public.sav_tickets -- --- TOC entry 3518 (class 2606 OID 24705) +-- TOC entry 3530 (class 2606 OID 24705) -- Name: sav_tickets sav_tickets_ticket_number_unique; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3208,7 +3280,7 @@ ALTER TABLE ONLY public.sav_tickets -- --- TOC entry 3523 (class 2606 OID 32776) +-- TOC entry 3535 (class 2606 OID 32776) -- Name: session session_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3217,7 +3289,7 @@ ALTER TABLE ONLY public.session -- --- TOC entry 3526 (class 2606 OID 57433) +-- TOC entry 3538 (class 2606 OID 57433) -- Name: sessions sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3226,7 +3298,7 @@ ALTER TABLE ONLY public.sessions -- --- TOC entry 3520 (class 2606 OID 24717) +-- TOC entry 3532 (class 2606 OID 24717) -- Name: stores stores_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3235,7 +3307,7 @@ ALTER TABLE ONLY public.stores -- --- TOC entry 3537 (class 2606 OID 57486) +-- TOC entry 3549 (class 2606 OID 57486) -- Name: suppliers suppliers_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3244,7 +3316,7 @@ ALTER TABLE ONLY public.suppliers -- --- TOC entry 3550 (class 2606 OID 57563) +-- TOC entry 3562 (class 2606 OID 57563) -- Name: tasks tasks_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3253,7 +3325,7 @@ ALTER TABLE ONLY public.tasks -- --- TOC entry 3571 (class 2606 OID 720930) +-- TOC entry 3583 (class 2606 OID 720930) -- Name: user_groups user_groups_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3262,7 +3334,7 @@ ALTER TABLE ONLY public.user_groups -- --- TOC entry 3569 (class 2606 OID 720917) +-- TOC entry 3581 (class 2606 OID 720917) -- Name: user_roles user_roles_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3271,7 +3343,7 @@ ALTER TABLE ONLY public.user_roles -- --- TOC entry 3529 (class 2606 OID 57445) +-- TOC entry 3541 (class 2606 OID 57445) -- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3280,7 +3352,7 @@ ALTER TABLE ONLY public.users -- --- TOC entry 3531 (class 2606 OID 57447) +-- TOC entry 3543 (class 2606 OID 57447) -- Name: users users_username_key; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3289,7 +3361,16 @@ ALTER TABLE ONLY public.users -- --- TOC entry 3602 (class 2606 OID 2359345) +-- TOC entry 3620 (class 2606 OID 2383886) +-- Name: weather_settings weather_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.weather_settings + ADD CONSTRAINT weather_settings_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3614 (class 2606 OID 2359345) -- Name: webhook_bap_config webhook_bap_config_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3298,7 +3379,7 @@ ALTER TABLE ONLY public.webhook_bap_config -- --- TOC entry 3521 (class 1259 OID 32777) +-- TOC entry 3533 (class 1259 OID 32777) -- Name: IDX_session_expire; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3306,7 +3387,7 @@ CREATE INDEX "IDX_session_expire" ON public.session USING btree (expire); -- --- TOC entry 3597 (class 1259 OID 2359331) +-- TOC entry 3609 (class 1259 OID 2359331) -- Name: idx_announcements_author_id; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3314,7 +3395,7 @@ CREATE INDEX idx_announcements_author_id ON public.announcements USING btree (au -- --- TOC entry 3598 (class 1259 OID 2359330) +-- TOC entry 3610 (class 1259 OID 2359330) -- Name: idx_announcements_created_at; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3322,7 +3403,7 @@ CREATE INDEX idx_announcements_created_at ON public.announcements USING btree (c -- --- TOC entry 3599 (class 1259 OID 2359332) +-- TOC entry 3611 (class 1259 OID 2359332) -- Name: idx_announcements_group_id; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3330,7 +3411,7 @@ CREATE INDEX idx_announcements_group_id ON public.announcements USING btree (gro -- --- TOC entry 3600 (class 1259 OID 2359329) +-- TOC entry 3612 (class 1259 OID 2359329) -- Name: idx_announcements_priority; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3338,7 +3419,7 @@ CREATE INDEX idx_announcements_priority ON public.announcements USING btree (pri -- --- TOC entry 3578 (class 1259 OID 2310157) +-- TOC entry 3590 (class 1259 OID 2310157) -- Name: idx_cache_key; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3346,7 +3427,7 @@ CREATE INDEX idx_cache_key ON public.invoice_verification_cache USING btree (cac -- --- TOC entry 3588 (class 1259 OID 2342923) +-- TOC entry 3600 (class 1259 OID 2342923) -- Name: idx_dashboard_messages_created_at; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3354,7 +3435,7 @@ CREATE INDEX idx_dashboard_messages_created_at ON public.dashboard_messages USIN -- --- TOC entry 3589 (class 1259 OID 2342925) +-- TOC entry 3601 (class 1259 OID 2342925) -- Name: idx_dashboard_messages_created_by; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3362,7 +3443,7 @@ CREATE INDEX idx_dashboard_messages_created_by ON public.dashboard_messages USIN -- --- TOC entry 3590 (class 1259 OID 2342924) +-- TOC entry 3602 (class 1259 OID 2342924) -- Name: idx_dashboard_messages_store_id; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3370,7 +3451,7 @@ CREATE INDEX idx_dashboard_messages_store_id ON public.dashboard_messages USING -- --- TOC entry 3579 (class 1259 OID 2310160) +-- TOC entry 3591 (class 1259 OID 2310160) -- Name: idx_delivery_id; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3378,7 +3459,7 @@ CREATE INDEX idx_delivery_id ON public.invoice_verification_cache USING btree (d -- --- TOC entry 3548 (class 1259 OID 2334721) +-- TOC entry 3560 (class 1259 OID 2334721) -- Name: idx_dlc_products_stock_epuise; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3386,7 +3467,7 @@ CREATE INDEX idx_dlc_products_stock_epuise ON public.dlc_products USING btree (s -- --- TOC entry 3580 (class 1259 OID 2310159) +-- TOC entry 3592 (class 1259 OID 2310159) -- Name: idx_expires_at; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3394,7 +3475,7 @@ CREATE INDEX idx_expires_at ON public.invoice_verification_cache USING btree (ex -- --- TOC entry 3581 (class 1259 OID 2310158) +-- TOC entry 3593 (class 1259 OID 2310158) -- Name: idx_group_invoice; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3402,7 +3483,7 @@ CREATE INDEX idx_group_invoice ON public.invoice_verification_cache USING btree -- --- TOC entry 3524 (class 1259 OID 57434) +-- TOC entry 3536 (class 1259 OID 57434) -- Name: idx_session_expire; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3410,7 +3491,7 @@ CREATE INDEX idx_session_expire ON public.sessions USING btree (expire); -- --- TOC entry 3565 (class 1259 OID 720946) +-- TOC entry 3577 (class 1259 OID 720946) -- Name: idx_user_roles_assigned_by; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3418,7 +3499,7 @@ CREATE INDEX idx_user_roles_assigned_by ON public.user_roles USING btree (assign -- --- TOC entry 3566 (class 1259 OID 720945) +-- TOC entry 3578 (class 1259 OID 720945) -- Name: idx_user_roles_role_id; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3426,7 +3507,7 @@ CREATE INDEX idx_user_roles_role_id ON public.user_roles USING btree (role_id); -- --- TOC entry 3567 (class 1259 OID 720944) +-- TOC entry 3579 (class 1259 OID 720944) -- Name: idx_user_roles_user_id; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3434,7 +3515,7 @@ CREATE INDEX idx_user_roles_user_id ON public.user_roles USING btree (user_id); -- --- TOC entry 3574 (class 1259 OID 2285590) +-- TOC entry 3586 (class 1259 OID 2285590) -- Name: invoice_verifications_delivery_idx; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3442,7 +3523,7 @@ CREATE INDEX invoice_verifications_delivery_idx ON public.invoice_verifications -- --- TOC entry 3575 (class 1259 OID 2285591) +-- TOC entry 3587 (class 1259 OID 2285591) -- Name: invoice_verifications_invoice_ref_idx; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3450,7 +3531,7 @@ CREATE INDEX invoice_verifications_invoice_ref_idx ON public.invoice_verificatio -- --- TOC entry 3527 (class 1259 OID 319488) +-- TOC entry 3539 (class 1259 OID 319488) -- Name: users_email_unique; Type: INDEX; Schema: public; Owner: neondb_owner -- @@ -3458,7 +3539,7 @@ CREATE UNIQUE INDEX users_email_unique ON public.users USING btree (email) WHERE -- --- TOC entry 3612 (class 2606 OID 2359319) +-- TOC entry 3626 (class 2606 OID 2359319) -- Name: announcements announcements_author_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3467,7 +3548,7 @@ ALTER TABLE ONLY public.announcements -- --- TOC entry 3613 (class 2606 OID 2359324) +-- TOC entry 3627 (class 2606 OID 2359324) -- Name: announcements announcements_group_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3476,7 +3557,7 @@ ALTER TABLE ONLY public.announcements -- --- TOC entry 3610 (class 2606 OID 2285580) +-- TOC entry 3624 (class 2606 OID 2285580) -- Name: invoice_verifications invoice_verifications_delivery_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3485,7 +3566,7 @@ ALTER TABLE ONLY public.invoice_verifications -- --- TOC entry 3611 (class 2606 OID 2285585) +-- TOC entry 3625 (class 2606 OID 2285585) -- Name: invoice_verifications invoice_verifications_group_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3494,7 +3575,7 @@ ALTER TABLE ONLY public.invoice_verifications -- --- TOC entry 3614 (class 2606 OID 2375697) +-- TOC entry 3628 (class 2606 OID 2375697) -- Name: reconciliation_comments reconciliation_comments_author_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3503,7 +3584,7 @@ ALTER TABLE ONLY public.reconciliation_comments -- --- TOC entry 3615 (class 2606 OID 2375692) +-- TOC entry 3629 (class 2606 OID 2375692) -- Name: reconciliation_comments reconciliation_comments_delivery_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3512,7 +3593,7 @@ ALTER TABLE ONLY public.reconciliation_comments -- --- TOC entry 3616 (class 2606 OID 2375702) +-- TOC entry 3630 (class 2606 OID 2375702) -- Name: reconciliation_comments reconciliation_comments_group_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3521,7 +3602,7 @@ ALTER TABLE ONLY public.reconciliation_comments -- --- TOC entry 3607 (class 2606 OID 2269185) +-- TOC entry 3621 (class 2606 OID 2269185) -- Name: tasks tasks_completed_by_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3530,7 +3611,7 @@ ALTER TABLE ONLY public.tasks -- --- TOC entry 3609 (class 2606 OID 720931) +-- TOC entry 3623 (class 2606 OID 720931) -- Name: user_groups user_groups_group_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3539,7 +3620,7 @@ ALTER TABLE ONLY public.user_groups -- --- TOC entry 3608 (class 2606 OID 720918) +-- TOC entry 3622 (class 2606 OID 720918) -- Name: user_roles user_roles_role_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner -- @@ -3548,8 +3629,8 @@ ALTER TABLE ONLY public.user_roles -- --- TOC entry 3830 (class 0 OID 0) --- Dependencies: 3829 +-- TOC entry 3846 (class 0 OID 0) +-- Dependencies: 3845 -- Name: DATABASE neondb; Type: ACL; Schema: -; Owner: neondb_owner -- @@ -3557,7 +3638,7 @@ GRANT ALL ON DATABASE neondb TO neon_superuser; -- --- TOC entry 2206 (class 826 OID 16392) +-- TOC entry 2211 (class 826 OID 16392) -- Name: DEFAULT PRIVILEGES FOR SEQUENCES; Type: DEFAULT ACL; Schema: public; Owner: cloud_admin -- @@ -3565,14 +3646,14 @@ ALTER DEFAULT PRIVILEGES FOR ROLE cloud_admin IN SCHEMA public GRANT ALL ON SEQU -- --- TOC entry 2205 (class 826 OID 16391) +-- TOC entry 2210 (class 826 OID 16391) -- Name: DEFAULT PRIVILEGES FOR TABLES; Type: DEFAULT ACL; Schema: public; Owner: cloud_admin -- ALTER DEFAULT PRIVILEGES FOR ROLE cloud_admin IN SCHEMA public GRANT ALL ON TABLES TO neon_superuser WITH GRANT OPTION; --- Completed on 2025-09-12 10:06:17 UTC +-- Completed on 2025-09-24 06:04:22 UTC -- -- PostgreSQL database dump complete diff --git a/client/src/components/DlcAlertModal.tsx b/client/src/components/DlcAlertModal.tsx new file mode 100644 index 0000000..5c2f893 --- /dev/null +++ b/client/src/components/DlcAlertModal.tsx @@ -0,0 +1,285 @@ +import { useState, useEffect } from "react"; +import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; +import { + Dialog, + DialogContent, + DialogHeader, + DialogTitle, + DialogDescription +} from "@/components/ui/dialog"; +import { Button } from "@/components/ui/button"; +import { Badge } from "@/components/ui/badge"; +import { + AlertTriangle, + XCircle, + Clock, + PackageX, + Eye, + ArrowRight +} from "lucide-react"; +import { useToast } from "@/hooks/use-toast"; +import { apiRequest } from "@/lib/queryClient"; + +interface DlcProduct { + id: number; + productName: string; + expiryDate: string; + supplier: { name: string }; + status: string; + stockEpuise: boolean; +} + +interface DlcAlertModalProps { + isOpen: boolean; + onClose: () => void; + dlcStats: { expired: number; expiringSoon: number; active: number }; + selectedStoreId?: number; +} + +export function DlcAlertModal({ isOpen, onClose, dlcStats, selectedStoreId }: DlcAlertModalProps) { + const { toast } = useToast(); + const queryClient = useQueryClient(); + const [snoozeUntil, setSnoozeUntil] = useState(null); + + // Fetch detailed DLC products for the modal + const { data: expiredProducts = [] } = useQuery({ + queryKey: ["/api/dlc-products", "expires", selectedStoreId], + queryFn: () => { + const params = new URLSearchParams(); + params.append("status", "expires"); + if (selectedStoreId) params.append("storeId", selectedStoreId.toString()); + return fetch(`/api/dlc-products?${params}`, { credentials: 'include' }) + .then(res => res.json()); + }, + enabled: isOpen && dlcStats.expired > 0, + }); + + const { data: expiringSoonProducts = [] } = useQuery({ + queryKey: ["/api/dlc-products", "expires_soon", selectedStoreId], + queryFn: () => { + const params = new URLSearchParams(); + params.append("status", "expires_soon"); + if (selectedStoreId) params.append("storeId", selectedStoreId.toString()); + return fetch(`/api/dlc-products?${params}`, { credentials: 'include' }) + .then(res => res.json()); + }, + enabled: isOpen && dlcStats.expiringSoon > 0, + }); + + // Mutation to mark product as stock depleted + const markStockEpuiseMutation = useMutation({ + mutationFn: (productId: number) => + apiRequest(`/api/dlc-products/${productId}/stock-epuise`, "PUT"), + onSuccess: () => { + toast({ + title: "✅ Produit marqué", + description: "Le produit a été marqué comme stock épuisé", + }); + // Refresh DLC stats and products + queryClient.invalidateQueries({ queryKey: ["/api/dlc-products"] }); + }, + onError: () => { + toast({ + title: "❌ Erreur", + description: "Impossible de marquer le produit comme épuisé", + variant: "destructive", + }); + }, + }); + + // Calculate days until expiry + const getDaysUntilExpiry = (expiryDate: string) => { + const today = new Date(); + const expiry = new Date(expiryDate); + const diffTime = expiry.getTime() - today.getTime(); + const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); + return diffDays; + }; + + // Handle temporary snooze (2 hours) + const handleSnooze = () => { + const snoozeTime = new Date(); + snoozeTime.setHours(snoozeTime.getHours() + 2); + setSnoozeUntil(snoozeTime); + localStorage.setItem('dlcAlertSnooze', snoozeTime.toISOString()); + onClose(); + }; + + // Check if modal should be snoozed + useEffect(() => { + const snoozedUntil = localStorage.getItem('dlcAlertSnooze'); + if (snoozedUntil) { + const snoozeDate = new Date(snoozedUntil); + if (new Date() < snoozeDate) { + setSnoozeUntil(snoozeDate); + } else { + localStorage.removeItem('dlcAlertSnooze'); + } + } + }, []); + + // Don't show if snoozed + if (snoozeUntil && new Date() < snoozeUntil) { + return null; + } + + // Don't show if no issues + if (dlcStats.expired === 0 && dlcStats.expiringSoon === 0) { + return null; + } + + const handleMarkStockEpuise = (productId: number) => { + markStockEpuiseMutation.mutate(productId); + }; + + const handleViewDlcModule = () => { + window.location.href = '/dlc'; + }; + + return ( + + + + + + Alerte Produits DLC - Action Requise + + + Des produits nécessitent votre attention immédiate pour éviter le gaspillage et respecter la sécurité alimentaire. + + + +
+ {/* Expired Products */} + {dlcStats.expired > 0 && ( +
+
+ +

+ Produits Expirés ({dlcStats.expired}) +

+
+ +
+ {expiredProducts.slice(0, 8).map((product) => ( +
+
+
{product.productName}
+
+ {product.supplier.name} • Expiré depuis {Math.abs(getDaysUntilExpiry(product.expiryDate))} jour(s) +
+
+ + {!product.stockEpuise && ( + + )} + + {product.stockEpuise && ( + + Stock épuisé + + )} +
+ ))} + + {expiredProducts.length > 8 && ( +
+ et {expiredProducts.length - 8} autre(s) produit(s) expiré(s)... +
+ )} +
+
+ )} + + {/* Expiring Soon Products */} + {dlcStats.expiringSoon > 0 && ( +
+
+ +

+ Expirent Bientôt ({dlcStats.expiringSoon}) +

+
+ +
+ {expiringSoonProducts.slice(0, 8).map((product) => { + const daysLeft = getDaysUntilExpiry(product.expiryDate); + return ( +
+
+
{product.productName}
+
+ {product.supplier.name} • Expire dans {daysLeft} jour(s) +
+
+ + + {daysLeft <= 3 ? 'URGENT' : `${daysLeft}j`} + +
+ ); + })} + + {expiringSoonProducts.length > 8 && ( +
+ et {expiringSoonProducts.length - 8} autre(s) produit(s) expirant bientôt... +
+ )} +
+
+ )} +
+ + {/* Action Buttons */} +
+ + + +
+ + {/* Help Text */} +
+ 💡 Conseil : Ce modal réapparaîtra tant que les produits ne sont pas traités. + Marquez les produits comme "stock épuisé" ou traitez-les dans le module DLC pour faire disparaître l'alerte. +
+
+
+ ); +} \ No newline at end of file diff --git a/client/src/pages/Dashboard.tsx b/client/src/pages/Dashboard.tsx index b951aa2..47a40a4 100644 --- a/client/src/pages/Dashboard.tsx +++ b/client/src/pages/Dashboard.tsx @@ -10,11 +10,13 @@ import { Calendar, Package, ShoppingCart, TrendingUp, Clock, MapPin, User, Alert import { safeFormat, safeDate } from "@/lib/dateUtils"; import type { PublicityWithRelations, DashboardMessage } from "@shared/schema"; import AnnouncementCard from "@/components/AnnouncementCard"; +import { DlcAlertModal } from "@/components/DlcAlertModal"; export default function Dashboard() { const { user } = useAuthUnified(); const { selectedStoreId } = useStore(); const [showAnnouncementModal, setShowAnnouncementModal] = useState(false); + const [showDlcAlertModal, setShowDlcAlertModal] = useState(false); const { data: stats } = useQuery({ queryKey: ['/api/stats/monthly', selectedStoreId], @@ -229,6 +231,35 @@ export default function Dashboard() { }, }); + // Effet pour afficher automatiquement le modal DLC pour les utilisateurs non-admin + useEffect(() => { + // Vérifier si l'utilisateur n'est pas admin et qu'il y a des problèmes DLC + const shouldShowDlcModal = user?.role !== 'admin' && + (dlcStats.expired > 0 || dlcStats.expiringSoon > 0); + + if (shouldShowDlcModal && !showDlcAlertModal) { + // Vérifier s'il n'y a pas de snooze actif + const snoozedUntil = localStorage.getItem('dlcAlertSnooze'); + if (snoozedUntil) { + const snoozeDate = new Date(snoozedUntil); + if (new Date() >= snoozeDate) { + localStorage.removeItem('dlcAlertSnooze'); + setShowDlcAlertModal(true); + } + } else { + setShowDlcAlertModal(true); + } + } else if (!shouldShowDlcModal && showDlcAlertModal) { + // Fermer le modal si plus de problèmes DLC + setShowDlcAlertModal(false); + } + }, [user?.role, dlcStats.expired, dlcStats.expiringSoon, showDlcAlertModal]); + + // Fonction pour fermer le modal DLC + const handleCloseDlcAlertModal = () => { + setShowDlcAlertModal(false); + }; + // Fetch tasks const { data: tasks = [] } = useQuery({ queryKey: ["/api/tasks", selectedStoreId], @@ -740,6 +771,14 @@ export default function Dashboard() { + + {/* Modal d'alerte DLC pour les utilisateurs non-admin */} + ); } \ No newline at end of file