--
-- PostgreSQL database dump
--

-- Dumped from database version 16.9 (165f042)
-- Dumped by pg_dump version 16.9

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;

--
-- Name: absence_type; Type: TYPE; Schema: public; Owner: neondb_owner
--

CREATE TYPE public.absence_type AS ENUM (
    'sick_leave',
    'vacation',
    'personal_leave',
    'injury'
);


ALTER TYPE public.absence_type OWNER TO neondb_owner;

--
-- Name: certification_status; Type: TYPE; Schema: public; Owner: neondb_owner
--

CREATE TYPE public.certification_status AS ENUM (
    'valid',
    'expiring_soon',
    'expired'
);


ALTER TYPE public.certification_status OWNER TO neondb_owner;

--
-- Name: shift_preference; Type: TYPE; Schema: public; Owner: neondb_owner
--

CREATE TYPE public.shift_preference AS ENUM (
    'morning',
    'afternoon',
    'night',
    'any'
);


ALTER TYPE public.shift_preference OWNER TO neondb_owner;

--
-- Name: shift_status; Type: TYPE; Schema: public; Owner: neondb_owner
--

CREATE TYPE public.shift_status AS ENUM (
    'planned',
    'active',
    'completed',
    'cancelled'
);


ALTER TYPE public.shift_status OWNER TO neondb_owner;

--
-- Name: shift_type; Type: TYPE; Schema: public; Owner: neondb_owner
--

CREATE TYPE public.shift_type AS ENUM (
    'fixed_post',
    'patrol',
    'night_inspection',
    'quick_response'
);


ALTER TYPE public.shift_type OWNER TO neondb_owner;

--
-- Name: site_preference_type; Type: TYPE; Schema: public; Owner: neondb_owner
--

CREATE TYPE public.site_preference_type AS ENUM (
    'preferred',
    'blacklisted'
);


ALTER TYPE public.site_preference_type OWNER TO neondb_owner;

--
-- Name: training_status; Type: TYPE; Schema: public; Owner: neondb_owner
--

CREATE TYPE public.training_status AS ENUM (
    'scheduled',
    'completed',
    'expired',
    'cancelled'
);


ALTER TYPE public.training_status OWNER TO neondb_owner;

--
-- Name: user_role; Type: TYPE; Schema: public; Owner: neondb_owner
--

CREATE TYPE public.user_role AS ENUM (
    'admin',
    'coordinator',
    'guard',
    'client'
);


ALTER TYPE public.user_role OWNER TO neondb_owner;

SET default_tablespace = '';

SET default_table_access_method = heap;

--
-- Name: absence_affected_shifts; Type: TABLE; Schema: public; Owner: neondb_owner
--

CREATE TABLE public.absence_affected_shifts (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    absence_id character varying NOT NULL,
    shift_id character varying NOT NULL,
    is_substituted boolean DEFAULT false,
    created_at timestamp without time zone DEFAULT now()
);


ALTER TABLE public.absence_affected_shifts OWNER TO neondb_owner;

--
-- Name: absences; Type: TABLE; Schema: public; Owner: neondb_owner
--

CREATE TABLE public.absences (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    guard_id character varying NOT NULL,
    type public.absence_type NOT NULL,
    start_date date NOT NULL,
    end_date date NOT NULL,
    certificate_url character varying,
    notes text,
    is_approved boolean DEFAULT false,
    needs_substitute boolean DEFAULT true,
    substitute_guard_id character varying,
    created_at timestamp without time zone DEFAULT now(),
    approved_at timestamp without time zone,
    approved_by character varying
);


ALTER TABLE public.absences OWNER TO neondb_owner;

--
-- Name: certifications; Type: TABLE; Schema: public; Owner: neondb_owner
--

CREATE TABLE public.certifications (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    guard_id character varying NOT NULL,
    type character varying NOT NULL,
    name character varying NOT NULL,
    issue_date date NOT NULL,
    expiry_date date NOT NULL,
    status public.certification_status DEFAULT 'valid'::public.certification_status NOT NULL,
    document_url character varying,
    created_at timestamp without time zone DEFAULT now()
);


ALTER TABLE public.certifications OWNER TO neondb_owner;

--
-- Name: contract_parameters; Type: TABLE; Schema: public; Owner: neondb_owner
--

CREATE TABLE public.contract_parameters (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    contract_type character varying DEFAULT 'CCNL_VIGILANZA_2023'::character varying NOT NULL,
    max_hours_per_day integer DEFAULT 8 NOT NULL,
    max_overtime_per_day integer DEFAULT 2 NOT NULL,
    max_hours_per_week integer DEFAULT 40 NOT NULL,
    max_overtime_per_week integer DEFAULT 8 NOT NULL,
    min_daily_rest_hours integer DEFAULT 11 NOT NULL,
    min_weekly_rest_hours integer DEFAULT 24 NOT NULL,
    max_night_hours_per_week integer DEFAULT 48,
    holiday_pay_increase integer DEFAULT 30,
    night_pay_increase integer DEFAULT 20,
    overtime_pay_increase integer DEFAULT 15,
    created_at timestamp without time zone DEFAULT now(),
    updated_at timestamp without time zone DEFAULT now()
);


ALTER TABLE public.contract_parameters OWNER TO neondb_owner;

--
-- Name: guard_constraints; Type: TABLE; Schema: public; Owner: neondb_owner
--

CREATE TABLE public.guard_constraints (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    guard_id character varying NOT NULL,
    preferred_shift_type public.shift_preference DEFAULT 'any'::public.shift_preference,
    max_hours_per_day integer DEFAULT 10,
    max_hours_per_week integer DEFAULT 48,
    preferred_days_off integer[],
    available_on_holidays boolean DEFAULT true,
    notes text,
    updated_at timestamp without time zone DEFAULT now()
);


ALTER TABLE public.guard_constraints OWNER TO neondb_owner;

--
-- Name: guards; Type: TABLE; Schema: public; Owner: neondb_owner
--

CREATE TABLE public.guards (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    user_id character varying,
    badge_number character varying NOT NULL,
    phone_number character varying,
    is_armed boolean DEFAULT false,
    has_fire_safety boolean DEFAULT false,
    has_first_aid boolean DEFAULT false,
    has_driver_license boolean DEFAULT false,
    languages text[],
    created_at timestamp without time zone DEFAULT now(),
    updated_at timestamp without time zone DEFAULT now()
);


ALTER TABLE public.guards OWNER TO neondb_owner;

--
-- Name: holiday_assignments; Type: TABLE; Schema: public; Owner: neondb_owner
--

CREATE TABLE public.holiday_assignments (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    holiday_id character varying NOT NULL,
    guard_id character varying NOT NULL,
    shift_id character varying,
    created_at timestamp without time zone DEFAULT now()
);


ALTER TABLE public.holiday_assignments OWNER TO neondb_owner;

--
-- Name: holidays; Type: TABLE; Schema: public; Owner: neondb_owner
--

CREATE TABLE public.holidays (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    name character varying NOT NULL,
    date date NOT NULL,
    is_national boolean DEFAULT true,
    worked_guard_ids text[],
    created_at timestamp without time zone DEFAULT now(),
    year integer NOT NULL
);


ALTER TABLE public.holidays OWNER TO neondb_owner;

--
-- Name: notifications; Type: TABLE; Schema: public; Owner: neondb_owner
--

CREATE TABLE public.notifications (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    user_id character varying NOT NULL,
    title character varying NOT NULL,
    message text NOT NULL,
    type character varying NOT NULL,
    is_read boolean DEFAULT false,
    related_entity_id character varying,
    created_at timestamp without time zone DEFAULT now()
);


ALTER TABLE public.notifications OWNER TO neondb_owner;

--
-- Name: sessions; Type: TABLE; Schema: public; Owner: neondb_owner
--

CREATE TABLE public.sessions (
    sid character varying NOT NULL,
    sess jsonb NOT NULL,
    expire timestamp without time zone NOT NULL
);


ALTER TABLE public.sessions OWNER TO neondb_owner;

--
-- Name: shift_assignments; Type: TABLE; Schema: public; Owner: neondb_owner
--

CREATE TABLE public.shift_assignments (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    shift_id character varying NOT NULL,
    guard_id character varying NOT NULL,
    assigned_at timestamp without time zone DEFAULT now(),
    confirmed_at timestamp without time zone,
    check_in_time timestamp without time zone,
    check_out_time timestamp without time zone
);


ALTER TABLE public.shift_assignments OWNER TO neondb_owner;

--
-- Name: shifts; Type: TABLE; Schema: public; Owner: neondb_owner
--

CREATE TABLE public.shifts (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    site_id character varying NOT NULL,
    start_time timestamp without time zone NOT NULL,
    end_time timestamp without time zone NOT NULL,
    status public.shift_status DEFAULT 'planned'::public.shift_status NOT NULL,
    notes text,
    created_at timestamp without time zone DEFAULT now(),
    updated_at timestamp without time zone DEFAULT now()
);


ALTER TABLE public.shifts OWNER TO neondb_owner;

--
-- Name: site_preferences; Type: TABLE; Schema: public; Owner: neondb_owner
--

CREATE TABLE public.site_preferences (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    site_id character varying NOT NULL,
    guard_id character varying NOT NULL,
    preference character varying NOT NULL,
    priority integer DEFAULT 0,
    reason text,
    created_at timestamp without time zone DEFAULT now()
);


ALTER TABLE public.site_preferences OWNER TO neondb_owner;

--
-- Name: sites; Type: TABLE; Schema: public; Owner: neondb_owner
--

CREATE TABLE public.sites (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    name character varying NOT NULL,
    address character varying NOT NULL,
    client_id character varying,
    shift_type public.shift_type NOT NULL,
    min_guards integer DEFAULT 1 NOT NULL,
    requires_armed boolean DEFAULT false,
    requires_driver_license boolean DEFAULT false,
    latitude character varying,
    longitude character varying,
    is_active boolean DEFAULT true,
    created_at timestamp without time zone DEFAULT now(),
    updated_at timestamp without time zone DEFAULT now()
);


ALTER TABLE public.sites OWNER TO neondb_owner;

--
-- Name: training_courses; Type: TABLE; Schema: public; Owner: neondb_owner
--

CREATE TABLE public.training_courses (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    guard_id character varying NOT NULL,
    course_name character varying NOT NULL,
    course_type character varying NOT NULL,
    scheduled_date date,
    completion_date date,
    expiry_date date,
    status public.training_status DEFAULT 'scheduled'::public.training_status NOT NULL,
    certificate_url character varying,
    provider character varying,
    hours integer,
    notes text,
    created_at timestamp without time zone DEFAULT now()
);


ALTER TABLE public.training_courses OWNER TO neondb_owner;

--
-- Name: users; Type: TABLE; Schema: public; Owner: neondb_owner
--

CREATE TABLE public.users (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    email character varying,
    first_name character varying,
    last_name character varying,
    profile_image_url character varying,
    role public.user_role DEFAULT 'guard'::public.user_role NOT NULL,
    created_at timestamp without time zone DEFAULT now(),
    updated_at timestamp without time zone DEFAULT now()
);


ALTER TABLE public.users OWNER TO neondb_owner;

--
-- Data for Name: absence_affected_shifts; Type: TABLE DATA; Schema: public; Owner: neondb_owner
--

COPY public.absence_affected_shifts (id, absence_id, shift_id, is_substituted, created_at) FROM stdin;
\.


--
-- Data for Name: absences; Type: TABLE DATA; Schema: public; Owner: neondb_owner
--

COPY public.absences (id, guard_id, type, start_date, end_date, certificate_url, notes, is_approved, needs_substitute, substitute_guard_id, created_at, approved_at, approved_by) FROM stdin;
\.


--
-- Data for Name: certifications; Type: TABLE DATA; Schema: public; Owner: neondb_owner
--

COPY public.certifications (id, guard_id, type, name, issue_date, expiry_date, status, document_url, created_at) FROM stdin;
\.


--
-- Data for Name: contract_parameters; Type: TABLE DATA; Schema: public; Owner: neondb_owner
--

COPY public.contract_parameters (id, contract_type, max_hours_per_day, max_overtime_per_day, max_hours_per_week, max_overtime_per_week, min_daily_rest_hours, min_weekly_rest_hours, max_night_hours_per_week, holiday_pay_increase, night_pay_increase, overtime_pay_increase, created_at, updated_at) FROM stdin;
\.


--
-- Data for Name: guard_constraints; Type: TABLE DATA; Schema: public; Owner: neondb_owner
--

COPY public.guard_constraints (id, guard_id, preferred_shift_type, max_hours_per_day, max_hours_per_week, preferred_days_off, available_on_holidays, notes, updated_at) FROM stdin;
\.


--
-- Data for Name: guards; Type: TABLE DATA; Schema: public; Owner: neondb_owner
--

COPY public.guards (id, user_id, badge_number, phone_number, is_armed, has_fire_safety, has_first_aid, has_driver_license, languages, created_at, updated_at) FROM stdin;
bd6451cc-2b35-49f2-9fc6-249a32892fe3	\N	GPV-BPxp	+39 333 1234567	t	f	f	f	{}	2025-10-11 10:06:22.578144	2025-10-11 10:06:22.578144
54b94b52-e7c7-440c-a3fc-7a3eb73bc0ec	\N	Guardia di test		t	t	t	t	{}	2025-10-11 10:08:48.44518	2025-10-11 10:08:48.44518
d969de12-6b2e-4922-856a-25ef7ffb4151	\N	ARMEDQ7Z	+393331111111	t	t	f	f	{italiano}	2025-10-11 10:47:21.967514	2025-10-11 10:47:21.967514
6939d71f-ec78-47ff-a5cc-8b34862264a6	\N	NOARMPo1	+393332222222	f	f	t	t	{italiano}	2025-10-11 10:47:36.37076	2025-10-11 10:47:36.37076
6f8f5d9d-0f10-4c25-9390-7d179fe53455	\N	ARMZ7	3910000000	t	f	f	f	{it}	2025-10-11 10:56:56.418186	2025-10-11 10:56:56.418186
guard-edit-test	\N	GPV-EDIT-002	+39 999 8888777	t	t	f	t	{}	2025-10-11 15:51:27.834342	2025-10-11 15:52:31.214
\.


--
-- Data for Name: holiday_assignments; Type: TABLE DATA; Schema: public; Owner: neondb_owner
--

COPY public.holiday_assignments (id, holiday_id, guard_id, shift_id, created_at) FROM stdin;
\.


--
-- Data for Name: holidays; Type: TABLE DATA; Schema: public; Owner: neondb_owner
--

COPY public.holidays (id, name, date, is_national, worked_guard_ids, created_at, year) FROM stdin;
aef7418f-10bc-4e30-a7cb-b161de8c268f	Natale 2025	2025-12-25	t	\N	2025-10-11 19:22:16.473591	2025
\.


--
-- Data for Name: notifications; Type: TABLE DATA; Schema: public; Owner: neondb_owner
--

COPY public.notifications (id, user_id, title, message, type, is_read, related_entity_id, created_at) FROM stdin;
\.


--
-- Data for Name: sessions; Type: TABLE DATA; Schema: public; Owner: neondb_owner
--

COPY public.sessions (sid, sess, expire) FROM stdin;
EOx2wCIiYXs6ymvWltapMxSk_OnpDO1X	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T09:29:52.444Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760178591, "iat": 1760174991, "iss": "https://test-mock-oidc.replit.app/", "jti": "d2897fd603422350e9c771fdfb2bb0c2", "sub": "admin001", "role": "admin", "email": "admin@vigilanza.it", "auth_time": 1760174991, "last_name": "Rossi", "first_name": "Mario"}, "expires_at": 1760178591, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMTc0OTkxLCJleHAiOjE3NjAxNzg1OTEsInN1YiI6ImFkbWluMDAxIiwiZW1haWwiOiJhZG1pbkB2aWdpbGFuemEuaXQiLCJmaXJzdF9uYW1lIjoiTWFyaW8iLCJsYXN0X25hbWUiOiJSb3NzaSIsInJvbGUiOiJhZG1pbiJ9.Q1Vi6UskNt8GEVPKVBtzBe7m-zV5vCQWmL1fgXb0g9ktNV_l09qvUCTLwHk9i8c5uzNtr-3uYqtW4wsG1mAmsw0Ax2JACA7mlVWXTZ1aZFqP2HRKlyOvrphoT05NAdDuScR726UpnsXfrLoZd29IH08I5kZcRqX51EiCfAMDac8adK8eZZlgSz2WfgkrxKLxa46uvnffO3NnsLG2CBniEE_OqpP-zoMItZnPHmm3-Nb-q_gPK2bP7zEuWWIEOF4Dlsf315t3S_jeN4A6fi3u1XS5K6KcMPUH3itRe8w_T8e0yKYiq-STuXrW0XsKCesanrgtc-1_DG_IatdbXS3_uA", "refresh_token": "eyJzdWIiOiJhZG1pbjAwMSIsImVtYWlsIjoiYWRtaW5AdmlnaWxhbnphLml0IiwiZmlyc3RfbmFtZSI6Ik1hcmlvIiwibGFzdF9uYW1lIjoiUm9zc2kiLCJyb2xlIjoiYWRtaW4ifQ"}}}	2025-10-18 09:36:39
bHcuoH7eaupU1HmlAUuhDCWk1OCai1yX	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T15:17:29.732Z", "httpOnly": true, "originalMaxAge": 604800000}, "test-mock-oidc.replit.app": {"code_verifier": "XVRn_28dGTxuDcD_EqY_1FVcvsg6T_VLw8LBM0mDOeo"}}	2025-10-18 15:17:30
j_-MaFHmjhRMHMo0tmPD_zDtYfmJY9NM	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-20T07:19:22.605Z", "httpOnly": true, "originalMaxAge": 604800000}, "replit.com": {"code_verifier": "7aA8NPNPCXpK5DZZ8EtIsAzPlvRdwY3yTq1iiSB5OvQ"}}	2025-10-22 08:09:45
MaoXbrXPuQZddUf3Oc5pG9wXmV8Vpvqg	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T09:29:10.214Z", "httpOnly": true, "originalMaxAge": 604800000}, "replit.com": {"code_verifier": "ftUe_DWh6Lzz_1Yqg51bbkUZQIs_D3Q5l0BOiFp-1lg"}}	2025-10-18 09:29:11
BCb25dspMJL_35e-GK-uhPg4JZqE6a8N	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T10:03:26.943Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760180606, "iat": 1760177006, "iss": "https://test-mock-oidc.replit.app/", "jti": "e0fe7223680d5c9f10d10e365296e745", "sub": "RELy01vi", "role": "admin", "email": "test-jv_1@vigilanza.it", "auth_time": 1760177006, "last_name": "User", "first_name": "Test"}, "expires_at": 1760180606, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMTc3MDA2LCJleHAiOjE3NjAxODA2MDYsInN1YiI6IlJFTHkwMXZpIiwiZW1haWwiOiJ0ZXN0LWp2XzFAdmlnaWxhbnphLml0IiwiZmlyc3RfbmFtZSI6IlRlc3QiLCJsYXN0X25hbWUiOiJVc2VyIiwicm9sZSI6ImFkbWluIn0.XAZyuW1mJ-IWmAnoLriVfQWjkEDl3Af5SgjRTrekvtBaNOz5eZjc0adWziJHg4zmVVLNA0daClb-tr-sHMSm-55mw6Nn5rR12jDCuFSKFiCZYsUfDbyurPXpy5qWHPs9N6C8AFtDWV-YtZhmi1k28ZHyKqSqdUIfVKVuAOew-6WO1fxkqbvs7SDiTMr0eXHETJwf2ofAma4N8PK2N-EfJnMhno0E8seFaKK_a27lXRqlzitH3iNgMEKnDpEKHnudy4pO92D_Mjx_wh6k6QyfvhkL1kP5T_WMT5b3YHbpoePj-Bj33kybCac8O_KTiZ5qOKpbfrKyWtUpmsS2oHjzzw", "refresh_token": "eyJzdWIiOiJSRUx5MDF2aSIsImVtYWlsIjoidGVzdC1qdl8xQHZpZ2lsYW56YS5pdCIsImZpcnN0X25hbWUiOiJUZXN0IiwibGFzdF9uYW1lIjoiVXNlciIsInJvbGUiOiJhZG1pbiJ9"}}}	2025-10-18 10:07:03
pUCOXknX_aeGMXMO3Thr_IG5vnEuFX7t	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-20T07:12:32.468Z", "httpOnly": true, "originalMaxAge": 604800000}, "replit.com": {"code_verifier": "dPtnXTfpcDEqx_ONtmKbQ93jnP7p-sc4I22t0LJyLBc"}}	2025-10-20 07:12:33
0MK06XSaPIpFv4XSuJeGKXvi1SxOlenq	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T19:52:57.199Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760215976, "iat": 1760212376, "iss": "https://replit.com/oidc", "sub": "48531002", "email": "marco@lanzara.eu", "at_hash": "eJHjY3-MxDZI-SmzsihfmQ", "username": "marco370", "auth_time": 1760196628, "last_name": "Lanzara", "first_name": "Marco"}, "expires_at": 1760215976, "access_token": "5fLtx-nV43vr4TjerSFAWwU0umQR_pqCNeqLJqB_wtE", "refresh_token": "EAEqWZHNzy2bvEYSc3nqQ5umyFMROY1fnJffaHbHNSR"}}}	2025-10-18 19:56:04
MGRsxqgxDuQWtazi3fyWmpKRzAnln9HH	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T14:54:00.458Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760198039, "iat": 1760194439, "iss": "https://replit.com/oidc", "sub": "48531002", "email": "marco@lanzara.eu", "at_hash": "ULFFV2r1H9HpeXPMBm9Pjg", "username": "marco370", "auth_time": 1760194438, "last_name": "Lanzara", "first_name": "Marco"}, "expires_at": 1760198039, "access_token": "zqt-2nhoCJPqQE3Q3h8oEf5svEfbGlUP5oF7agsG4VH", "refresh_token": "92JyqY20XUAnkFrjwl4zrwldG_B0wCHrloL8BGTHwUz"}}}	2025-10-18 14:54:08
9R3eXldzJgCJtvRidjnATOHleQqU-VPm	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T15:05:15.530Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760198715, "iat": 1760195115, "iss": "https://test-mock-oidc.replit.app/", "jti": "2638b26901698500dad7ac25664d26fc", "sub": "menu-test-user", "role": "admin", "email": "menu@test.it", "auth_time": 1760195114, "last_name": "Tester", "first_name": "Menu"}, "expires_at": 1760198715, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMTk1MTE1LCJleHAiOjE3NjAxOTg3MTUsInN1YiI6Im1lbnUtdGVzdC11c2VyIiwiZW1haWwiOiJtZW51QHRlc3QuaXQiLCJmaXJzdF9uYW1lIjoiTWVudSIsImxhc3RfbmFtZSI6IlRlc3RlciIsInJvbGUiOiJhZG1pbiJ9.FyUIOvOStYhb7IdGZmsuuZCBwGelj_UzU-pQEnXKNz9HIz_o1Esvrb1oDzef9i3gZ3DZD2QLO9oQgwY-EcJr74SzYQ-mZUWLNyXw3znOa8V5SgZd6xauovUiF27Kdhx8HY3V2eevlePVTCU_1zcy0lH6MzmrKKh6a7YYvq-v1TIabebPlM1rGuhGBq8D5HLPlnxtIpjOSuITy1alxZpj0x0mF2L1fke-wGdzOJhSpOBxebNohtfgQ5ZEcNnIF7_R4aZcA6Fxwz0hOjcOXSgtJ5Q_SHJqefpDT_RuBppZ42c_in-mx4pCl-703cg0mHTB762KuBP_6RR1Hj1pllYEaw", "refresh_token": "eyJzdWIiOiJtZW51LXRlc3QtdXNlciIsImVtYWlsIjoibWVudUB0ZXN0Lml0IiwiZmlyc3RfbmFtZSI6Ik1lbnUiLCJsYXN0X25hbWUiOiJUZXN0ZXIiLCJyb2xlIjoiYWRtaW4ifQ"}}}	2025-10-18 15:05:19
h-lYn0EHxUnWyDm0-Uw2Kpkb-Qc8YKtz	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-20T07:19:36.520Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760343575, "iat": 1760339975, "iss": "https://replit.com/oidc", "sub": "48531002", "email": "marco@lanzara.eu", "at_hash": "6TmaYJVt8NoBvvHW0zODKw", "username": "marco370", "auth_time": 1760176372, "last_name": "Lanzara", "first_name": "Marco"}, "expires_at": 1760343575, "access_token": "Xa3NG-7gQ7VBePQCs-RQve8o6LR9j3ca-FUTIots4A4", "refresh_token": "b5teeGRFvjtKUZ73L2QpPtmWFC6A10CjP9u_IHWYVn8"}}}	2025-10-20 07:21:03
CGdg7w4Rx4yhNg4HzM6x83UxA7erKxcK	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T09:47:16.831Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760179636, "iat": 1760176036, "iss": "https://replit.com/oidc", "sub": "48531002", "email": "marco@lanzara.eu", "at_hash": "UH5Ee9wj0LQVDxxlcC4xlA", "username": "marco370", "auth_time": 1760176035, "last_name": "Lanzara", "first_name": "Marco"}, "expires_at": 1760179636, "access_token": "IoFFIzDnDVvT9WVwxZh_YVpagO0mzEoTVQIrKt-BDr-", "refresh_token": "fuWRFgDokC6JmXbNt9P4ppQqMkOInRpT_uaP6KUPA6g"}}}	2025-10-18 09:47:54
sF24qvCjN9H31oy-4Qe43JaY44TUj9PE	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T09:48:05.682Z", "httpOnly": true, "originalMaxAge": 604800000}, "replit.com": {"code_verifier": "tXX4r9Lnnc4S47qzYkKHaxakmskn6bQdO2H5aCCKkgc"}, "test-mock-oidc.replit.app": {"code_verifier": "fq9U9BlmiFYq481ShXN75xVKhrA33PNWHoLNR83uitc"}}	2025-10-18 09:48:06
oWaGRXLDo4rpH0G6I6lOD5WGgvcsDs9n	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T10:56:23.918Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760183783, "iat": 1760180183, "iss": "https://test-mock-oidc.replit.app/", "jti": "3f7e81adf85c2185fdd5c44b9120aef3", "sub": "jGUQSg", "role": "admin", "email": "refetch-cYC@test.it", "auth_time": 1760180183, "last_name": "Test", "first_name": "Refetch"}, "expires_at": 1760183783, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMTgwMTgzLCJleHAiOjE3NjAxODM3ODMsInN1YiI6ImpHVVFTZyIsImVtYWlsIjoicmVmZXRjaC1jWUNAdGVzdC5pdCIsImZpcnN0X25hbWUiOiJSZWZldGNoIiwibGFzdF9uYW1lIjoiVGVzdCIsInJvbGUiOiJhZG1pbiJ9.iRNCC8Vo3ngYUYKDitOhucneKkK6fqfn6y34sLMIo47PSIxJ06cXSuj7BZd1p1kDXIjOcFcS1aW5Rsq59F2mWoCx2554olKDDSKMJ-0aRZHF5vKu1ctHdD9_6UoKCnKOkuv31GkIwUoumJBebagX764LA3dkKFvCGc44vV3GmzhFA_zxYkdLFzCdATuVY8cTG-yzZ3zIYAgrdTraTC9Xyh2It8AjULLRRVH_nqpknkWIFtOZl3PI61Mk5ak7UFi29l67-QNikreEt48sjWHh_J5J7FVlD5-LmsMEYqOyok-MXzn7ac_PRQ8CDpgOrvcwUE6OVUq0odJwiDe7w_1D9Q", "refresh_token": "eyJzdWIiOiJqR1VRU2ciLCJlbWFpbCI6InJlZmV0Y2gtY1lDQHRlc3QuaXQiLCJmaXJzdF9uYW1lIjoiUmVmZXRjaCIsImxhc3RfbmFtZSI6IlRlc3QiLCJyb2xlIjoiYWRtaW4ifQ"}}}	2025-10-18 11:00:41
rr6VHF5XVx-H_UGZLQLkpauI9ryJ7Y14	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T10:39:18.339Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760182757, "iat": 1760179157, "iss": "https://test-mock-oidc.replit.app/", "jti": "6db441aed924d3f8a1376a445910e73b", "sub": "xujCTTYv", "role": "admin", "email": "assign-test-l71q@vigilanza.it", "auth_time": 1760179157, "last_name": "Test", "first_name": "Assignment"}, "expires_at": 1760182757, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMTc5MTU3LCJleHAiOjE3NjAxODI3NTcsInN1YiI6Inh1akNUVFl2IiwiZW1haWwiOiJhc3NpZ24tdGVzdC1sNzFxQHZpZ2lsYW56YS5pdCIsImZpcnN0X25hbWUiOiJBc3NpZ25tZW50IiwibGFzdF9uYW1lIjoiVGVzdCIsInJvbGUiOiJhZG1pbiJ9.HQm4qNaItsrIa84yPFJMGy_J2_B9DvB8jiLqVC8NkKXow2EgLnj1nsBkBueDs_S1Waa4ptAHpNfopEHzgVVCs3lk5YZG2OjK4-ws-O7sC8HiCQ0r0Dk6UATNbxYhGZb-7LPCzrwSitWESSX21Nz9yDAuYfUIdByz0BEXDWfKTXHvjTaeamLqj-nIvsgl4w9oq3hrWS6cQOLtKAJZekUHGvDkyy8xQprPGLApcldY0uQAYdDZ6HbWg3eVgKpP8pQ6jJq3580cXimW-NhGpsbKQeDyi-149k9glREamgfw4r1GwTyUlpZkQi4mDbGOttLdQLD9sZTK4rCLmbBRLhkTOA", "refresh_token": "eyJzdWIiOiJ4dWpDVFRZdiIsImVtYWlsIjoiYXNzaWduLXRlc3QtbDcxcUB2aWdpbGFuemEuaXQiLCJmaXJzdF9uYW1lIjoiQXNzaWdubWVudCIsImxhc3RfbmFtZSI6IlRlc3QiLCJyb2xlIjoiYWRtaW4ifQ"}}}	2025-10-18 10:45:07
-NyLj_NDThlkVS_V1S3wEscq70x8tRNG	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T10:46:50.670Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760183210, "iat": 1760179610, "iss": "https://test-mock-oidc.replit.app/", "jti": "eb3cd3d5cf59b547a03194ee2324b94a", "sub": "K4vWdf31", "role": "admin", "email": "fix-test-iq8w@vigilanza.it", "auth_time": 1760179610, "last_name": "User", "first_name": "FixTest"}, "expires_at": 1760183210, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMTc5NjEwLCJleHAiOjE3NjAxODMyMTAsInN1YiI6Iks0dldkZjMxIiwiZW1haWwiOiJmaXgtdGVzdC1pcTh3QHZpZ2lsYW56YS5pdCIsImZpcnN0X25hbWUiOiJGaXhUZXN0IiwibGFzdF9uYW1lIjoiVXNlciIsInJvbGUiOiJhZG1pbiJ9.wdegIwgmTZKonTDopkHaFFnNL0yyWOdDjQrR9ad-WuJuZqzDr5NCMfwHFZORJy_ZND9P21DU1_M8O2V5eUNPV4OYFE2IdExsjFwnLRmjRf1yp9stiL6-Gq-p3Kzyipb-xEAnhLQc0MRPT1Ggcz4K9OyvAytS8Tpon0JmGenO4qJRf4eHhuVkfADDW0EJCPzuzzy87lNf1qW59bB6-zoF509XW0EbvMOpYQYWvF_uE5B29HjBErZNFDZubeh4NTYdS27kJ76mgQhAWYhl1HKbk31OngXxB6wKOV3lxxvJxSHDjszwYlhDzPSjSU9Z7b9vh0QFgPCoxoQmBfk0SWHYYw", "refresh_token": "eyJzdWIiOiJLNHZXZGYzMSIsImVtYWlsIjoiZml4LXRlc3QtaXE4d0B2aWdpbGFuemEuaXQiLCJmaXJzdF9uYW1lIjoiRml4VGVzdCIsImxhc3RfbmFtZSI6IlVzZXIiLCJyb2xlIjoiYWRtaW4ifQ"}}}	2025-10-18 10:54:13
qHdexxU_vkm0SANJWvqXEsBvmGKnxktG	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T10:10:40.581Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760181039, "iat": 1760177439, "iss": "https://test-mock-oidc.replit.app/", "jti": "42ef5883a7ed0f48274417a33674620a", "sub": "cS6VwdUj", "role": "admin", "email": "final-test-T6pt@vigilanza.it", "auth_time": 1760177439, "last_name": "Test", "first_name": "Final"}, "expires_at": 1760181039, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMTc3NDM5LCJleHAiOjE3NjAxODEwMzksInN1YiI6ImNTNlZ3ZFVqIiwiZW1haWwiOiJmaW5hbC10ZXN0LVQ2cHRAdmlnaWxhbnphLml0IiwiZmlyc3RfbmFtZSI6IkZpbmFsIiwibGFzdF9uYW1lIjoiVGVzdCIsInJvbGUiOiJhZG1pbiJ9.vEB2tmJLEcLBbHrGrvVoJZzgiU2tiBAcRiYSRYq9qyPfFbbIhkgZUHTPnpKmpsbIzHJm0ngBMUUu7YQsGOAYr_AxpA3u9OLPnYJSmBnCrYGP1hTjhpQqU6DPKZh9DGi0yn8xRt1Jy9wO4V8tLXyOYy46GmxDdq3aH0ZQC-ateHuKUgz0RMeuNS-_IMGvxcS4A9fJgGC0nNJDFpfuBRdOJqIVAgRef4A4QbbzWg-jKVi2SbdIhrJWWhirpoNM-6kfBO8K6ELHddApdlzDckGrZbAe6ZNcY8p23qLYlF8ecIfAr0LtZpXwQFkCikl43WpPpr4TTKOlchyhrz8d0wNWKQ", "refresh_token": "eyJzdWIiOiJjUzZWd2RVaiIsImVtYWlsIjoiZmluYWwtdGVzdC1UNnB0QHZpZ2lsYW56YS5pdCIsImZpcnN0X25hbWUiOiJGaW5hbCIsImxhc3RfbmFtZSI6IlRlc3QiLCJyb2xlIjoiYWRtaW4ifQ"}}}	2025-10-18 10:14:16
wSmAm4Srk2KEuQ01VGmNE0Vq3zT0eCaR	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T09:59:42.800Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760180382, "iat": 1760176782, "iss": "https://test-mock-oidc.replit.app/", "jti": "314219805b34fb5c71c433e7daac2ccd", "sub": "vCRhJG-V", "role": "admin", "email": "admin-UNbw8C@vigilanza.it", "auth_time": 1760176781, "last_name": "Rossi", "first_name": "Mario"}, "expires_at": 1760180382, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMTc2NzgyLCJleHAiOjE3NjAxODAzODIsInN1YiI6InZDUmhKRy1WIiwiZW1haWwiOiJhZG1pbi1VTmJ3OENAdmlnaWxhbnphLml0IiwiZmlyc3RfbmFtZSI6Ik1hcmlvIiwibGFzdF9uYW1lIjoiUm9zc2kiLCJyb2xlIjoiYWRtaW4ifQ.KHf-xmZ1NSCwTMgeHJmrPJmm7Bt3T18d-i23kCtnt2TlQtPy1L_td0wgewr-UBeceMb0omMtOevDK6406dqmV_Xqkm6WPRhDtvXgsaQaDL-eg_ito2kkTvJQdD9peOsTTvQ1BVwQPW5XFGRsvs8293SrzWoOs-eiQqw-zbQ36HzrBiGCIy7-L40Bs0_L9Gpx2BXQVk2UurB9shY_RHqlygzDWioHrvjtjoH3CNcSYuCosoW_WQLvEB0E9Etw561G1mynUk8WvA11owdOOdfIodnuA683JTaIo0QFttavPytwufBlPO6RGPM1wQ43R32BOLF79Nsv6VQcPbOaGPvpPA", "refresh_token": "eyJzdWIiOiJ2Q1JoSkctViIsImVtYWlsIjoiYWRtaW4tVU5idzhDQHZpZ2lsYW56YS5pdCIsImZpcnN0X25hbWUiOiJNYXJpbyIsImxhc3RfbmFtZSI6IlJvc3NpIiwicm9sZSI6ImFkbWluIn0"}}}	2025-10-18 10:00:30
aTDDzJwwmT3UbBAN5TASdAZPLMAAXopj	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T10:17:37.663Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760181456, "iat": 1760177856, "iss": "https://test-mock-oidc.replit.app/", "jti": "9b777e0d39bd576a633b45ba3fcb76f7", "sub": "IDxjtq9A", "role": "admin", "email": "final-zod-wxYt@vigilanza.it", "auth_time": 1760177856, "last_name": "Test", "first_name": "Zod"}, "expires_at": 1760181456, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMTc3ODU2LCJleHAiOjE3NjAxODE0NTYsInN1YiI6IklEeGp0cTlBIiwiZW1haWwiOiJmaW5hbC16b2Qtd3hZdEB2aWdpbGFuemEuaXQiLCJmaXJzdF9uYW1lIjoiWm9kIiwibGFzdF9uYW1lIjoiVGVzdCIsInJvbGUiOiJhZG1pbiJ9.xLN3sEzJk5mrVfs9xUCQ1zIHs6efkBmHFTtUZZ2SS6w-1jd9d6dzYSkIhY41MZnTQgUd664UdeAMKJoT0qjx2xOEFzeTPpp2bPuVmCqQT41zjU1U5j1sGIpcuiAKZOiBDDwsmd_92BmhpJYim-fKL2ICu4VCSzhqedrN2v4i6cGWrt9_GTr9M8Fn4IbmxCdjtv4_8HZuoJOZOBQGu4lsRHk2_EAwARVxTQYn-NVMxgLRhwc3NertTEzS_mtr0IYtDg_ZD4EXuP5d3LOuLeamSD5T6I-tY3_ojg57PxUysWy-sju0OEY9qpD8WiZhZJx7IT8xoE3NT_6ge1ll64HdEA", "refresh_token": "eyJzdWIiOiJJRHhqdHE5QSIsImVtYWlsIjoiZmluYWwtem9kLXd4WXRAdmlnaWxhbnphLml0IiwiZmlyc3RfbmFtZSI6IlpvZCIsImxhc3RfbmFtZSI6IlRlc3QiLCJyb2xlIjoiYWRtaW4ifQ"}}}	2025-10-18 10:19:36
rBOv-IOJDsfLpoqpD2dULNNIXRNVIS6Y	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T10:23:07.251Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760181786, "iat": 1760178186, "iss": "https://test-mock-oidc.replit.app/", "jti": "cf4d4c31d279a71c40b28e5491d85763", "sub": "JMGdwYph", "role": "admin", "email": "refine-fix-sigB@vigilanza.it", "auth_time": 1760178186, "last_name": "Fix", "first_name": "Refine"}, "expires_at": 1760181786, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMTc4MTg2LCJleHAiOjE3NjAxODE3ODYsInN1YiI6IkpNR2R3WXBoIiwiZW1haWwiOiJyZWZpbmUtZml4LXNpZ0JAdmlnaWxhbnphLml0IiwiZmlyc3RfbmFtZSI6IlJlZmluZSIsImxhc3RfbmFtZSI6IkZpeCIsInJvbGUiOiJhZG1pbiJ9.i8yCJFN_Uoc3H9L7VD9FtiIuAitsG6LQAbYQm51hsQQJabSgmQ2FNB-dCBYRQiwz_-vbiFSsyJf8VxGsqvcyST8PNGQx3wdrbx0eZrqtXAS1WDOmmR1kC5vwzSsk1qOW9Hcu9G_hGBigwor5uHWZVhrONoTH2C8cqz40QECDz58Vyj-tfEY-vxDVMaeOoz3qPvrtIEUwXwVDxfkq69CQnLngJkW7QBouwaw5AzmS6ZZsq3wuzHb5hO44wCNaqH61T_n_PIvE89aMS0UZ9PIjDrO4WC_PJ6f4HAbijxfXE5CV2MJf7kMffsIyBoW8CpclP7Evic6DVtc9sAzMO279Hw", "refresh_token": "eyJzdWIiOiJKTUdkd1lwaCIsImVtYWlsIjoicmVmaW5lLWZpeC1zaWdCQHZpZ2lsYW56YS5pdCIsImZpcnN0X25hbWUiOiJSZWZpbmUiLCJsYXN0X25hbWUiOiJGaXgiLCJyb2xlIjoiYWRtaW4ifQ"}}}	2025-10-18 10:26:27
O4cjg1auQoYPvA9kIeugk2b-7uwsbxSU	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T10:28:18.421Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760182097, "iat": 1760178497, "iss": "https://test-mock-oidc.replit.app/", "jti": "b1b6c1050ccfca9db2f8adcbecfd3901", "sub": "eVS7usSc", "role": "admin", "email": "debug-IoeB@test.it", "auth_time": 1760178497, "last_name": "User", "first_name": "Debug"}, "expires_at": 1760182097, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMTc4NDk3LCJleHAiOjE3NjAxODIwOTcsInN1YiI6ImVWUzd1c1NjIiwiZW1haWwiOiJkZWJ1Zy1Jb2VCQHRlc3QuaXQiLCJmaXJzdF9uYW1lIjoiRGVidWciLCJsYXN0X25hbWUiOiJVc2VyIiwicm9sZSI6ImFkbWluIn0.pUWo5lXHt17hDU6XQrN_jNkdpfDra9OsJbSxGCuiiOnWXkD7isSGQEjIHgKdwHIqBro3Ss76Yvjm3or5iHIqxOXU6LY8E2u31WxgDtnX0Y-rhvguN7rpLJIYkSTMvezwcXY4rdtzPiT2NmdN1HgdODqfsETeJr1Itk9qO8iyJJDQSwRwzfwvscWRE3O8hhF6r0sRjioXUpxH_myqgdfrlTheyzjlnLM2ESsFUkV9UrH-YxOusgcuS-BWusOOZjK2nL8L2N2jJIbbqYwgtyZOXK8d_U8Zz1CF1JIpsLder9ql4XDiI9bvTrOVEkJ_dy15DM0GfS3dJhEb74ibkwPVTQ", "refresh_token": "eyJzdWIiOiJlVlM3dXNTYyIsImVtYWlsIjoiZGVidWctSW9lQkB0ZXN0Lml0IiwiZmlyc3RfbmFtZSI6IkRlYnVnIiwibGFzdF9uYW1lIjoiVXNlciIsInJvbGUiOiJhZG1pbiJ9"}}}	2025-10-18 10:29:53
sqnKaJZhmGqrBQ0mVupW1z_-HeqPSv9b	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T15:50:29.528Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760201428, "iat": 1760197828, "iss": "https://test-mock-oidc.replit.app/", "jti": "61a7a06f540598b0fe43bd089b85683f", "sub": "admin-test-2", "email": "admin2@test.com", "auth_time": 1760197828, "last_name": "Test", "first_name": "Admin"}, "expires_at": 1760201428, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMTk3ODI4LCJleHAiOjE3NjAyMDE0MjgsInN1YiI6ImFkbWluLXRlc3QtMiIsImVtYWlsIjoiYWRtaW4yQHRlc3QuY29tIiwiZmlyc3RfbmFtZSI6IkFkbWluIiwibGFzdF9uYW1lIjoiVGVzdCJ9.OddLXmyAQJND5-38ipitOCceqONCcvfpu-TfCH2QlVg4lOzJ5gL6HwFOk-OKyipCn0BUUHDEthftf27wo60gYd5WkgUe0UlaFEdjZGn9dEHFaHkuuB6_ShtDDRkGExwY2OT2DqqR1AVSFj228r6QhUaJMedgP6U753hcGtwCoAYPkqiXGQDyKL6TlF3tFShxFpSNoUKxzbgmiyRYCcFgQZwdeiG_pFryquzuOTjeYSn1ekj_ayG4O35Sgavglx9m6js_78ND1x2TB_jz02IyA5T6kq1mz6oQP2B44ATFu-3WClQX4y4CuZyhkAZ-jhvSufnJSHmIWgHHkF8mZEa1Jw", "refresh_token": "eyJzdWIiOiJhZG1pbi10ZXN0LTIiLCJlbWFpbCI6ImFkbWluMkB0ZXN0LmNvbSIsImZpcnN0X25hbWUiOiJBZG1pbiIsImxhc3RfbmFtZSI6IlRlc3QifQ"}}}	2025-10-18 15:50:33
CTsWAmVjRCDIeJWmv2gu3EByl_nNK1Er	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T15:22:48.261Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760199767, "iat": 1760196167, "iss": "https://test-mock-oidc.replit.app/", "jti": "deec8b729995ac3f71974438f94ba6bb", "sub": "security-test-admin", "email": "security-admin@test.it", "auth_time": 1760196167, "last_name": "Admin", "first_name": "Security"}, "expires_at": 1760199767, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMTk2MTY3LCJleHAiOjE3NjAxOTk3NjcsInN1YiI6InNlY3VyaXR5LXRlc3QtYWRtaW4iLCJlbWFpbCI6InNlY3VyaXR5LWFkbWluQHRlc3QuaXQiLCJmaXJzdF9uYW1lIjoiU2VjdXJpdHkiLCJsYXN0X25hbWUiOiJBZG1pbiJ9.SrpW_aZZMcZAS-jYZU4MnUGUdDSCVb81qMiC3yATh5oBcPYpmxCKlpZS-iOLXViBSBnIsYyeJJwynsFPbZn9yv57Vxhi9PEz5EndF99yMMXYngSw6tQXBhTKo51PjssXEbRYJ6_MdCpWoPLVOTYN9mvAoTvDHmT5GiVApxsS0ksEtAIDc9dev0wSw2o2IhXh4Sz4Ck6_29a0RYqyVffXh03qjk8zrpk3TQtUJxP9J6x6WmvAfxWoYsMEq8OWxXxUW3YgenJuHghv4P3BSOPMlF21_jX90xVbniorkycBqjKAAsLQIOsaiwN4xbV97vb89gqnmoafU3x66XNczbYf3A", "refresh_token": "eyJzdWIiOiJzZWN1cml0eS10ZXN0LWFkbWluIiwiZW1haWwiOiJzZWN1cml0eS1hZG1pbkB0ZXN0Lml0IiwiZmlyc3RfbmFtZSI6IlNlY3VyaXR5IiwibGFzdF9uYW1lIjoiQWRtaW4ifQ"}}}	2025-10-18 15:23:14
rSR1OAJ1n-2EJf4uKVhr7ZEvMT7drJZY	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T15:24:32.968Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760199872, "iat": 1760196272, "iss": "https://test-mock-oidc.replit.app/", "jti": "a84ed05c9dfee4cea533cc8450efa714", "sub": "marco-lanzara-admin", "email": "marco@lanzara.eu", "auth_time": 1760196272, "last_name": "Lanzara", "first_name": "Marco"}, "expires_at": 1760199872, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMTk2MjcyLCJleHAiOjE3NjAxOTk4NzIsInN1YiI6Im1hcmNvLWxhbnphcmEtYWRtaW4iLCJlbWFpbCI6Im1hcmNvQGxhbnphcmEuZXUiLCJmaXJzdF9uYW1lIjoiTWFyY28iLCJsYXN0X25hbWUiOiJMYW56YXJhIn0.fZeD9geXmiTH_ZHdVq8Up2seOaVQN-41fAPhxc0jNy3CMKwcAJ5qPTLBu0xRfmd1HPBU_r08aD1r0SDQIi5zi7ym29H1mIuxwJ5uVsTRzwESwvJrwEMZaQpZeHoXxNZY5eWdHPF6I9g4GOoSd2OxPr3byFXLT5s2gm_B4aUeTjloQv39a1c9BAZvD7LKWIrln2ucrlLlCpFX1jHJCrlG5uCbUDdPTNSPUtUBQ1STyeB2AFcRtCGHChl7HKr7_WCLJO6kyxmTdKuQhz9NACeLJsDCQRbCZz1Wk3XX69djsYbye1t1yZqSveAW5gu9nRVwb-nz_S0PmRR741RWljUqPA", "refresh_token": "eyJzdWIiOiJtYXJjby1sYW56YXJhLWFkbWluIiwiZW1haWwiOiJtYXJjb0BsYW56YXJhLmV1IiwiZmlyc3RfbmFtZSI6Ik1hcmNvIiwibGFzdF9uYW1lIjoiTGFuemFyYSJ9"}}}	2025-10-18 15:24:37
8RpUruKQx6G5UgL98xG4h_PD8MME56kT	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T15:18:57.242Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760199536, "iat": 1760195936, "iss": "https://test-mock-oidc.replit.app/", "jti": "c3aca2826c2b6b6dc4bd3c864d622b12", "sub": "marco-admin", "email": "marco@lanzara.eu", "auth_time": 1760195936, "last_name": "Lanzara", "first_name": "Marco"}, "expires_at": 1760199536, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMTk1OTM2LCJleHAiOjE3NjAxOTk1MzYsInN1YiI6Im1hcmNvLWFkbWluIiwiZW1haWwiOiJtYXJjb0BsYW56YXJhLmV1IiwiZmlyc3RfbmFtZSI6Ik1hcmNvIiwibGFzdF9uYW1lIjoiTGFuemFyYSJ9.rZHKW6NJfYB8zOD_HN_ynHAFSprCoND7IzQ8rvugxS8kZn67JkBbHnD2vrkoBQk6XS0yj8-Fn__riz41cqzCJFzMHOzQNOJvj4BJyH8ss8gftQx4L63fb3IrBw21GYfQXx9BICilnPUB9gd9vHgAL1nQlSxd4Szg9VyKwLdKC4I_qClxI42JasaZcur1VBsz--c3J2zo-ia1yJeUGChrxBRodbvjczrlEWEuKlaZsqnx0L7fMLyl-7M_rdEtJQS2CEIR9lwYu-5Z7N55XQpcdr2qMc-Okjp58u_rHQZQOVm4t35eKpNS_Vdou80fjKjkCyN_e40BBZhV2nIDlSd9Vg", "refresh_token": "eyJzdWIiOiJtYXJjby1hZG1pbiIsImVtYWlsIjoibWFyY29AbGFuemFyYS5ldSIsImZpcnN0X25hbWUiOiJNYXJjbyIsImxhc3RfbmFtZSI6IkxhbnphcmEifQ"}}}	2025-10-18 15:20:06
LplSh1-TmAlPl9VqBYRZOmQhHAlFkNtf	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T15:48:20.085Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760201299, "iat": 1760197699, "iss": "https://test-mock-oidc.replit.app/", "jti": "518e0a1c09594f15a5f2dc183738f1b5", "sub": "admin-test", "email": "admin@test.com", "auth_time": 1760197699, "last_name": "Test", "first_name": "Admin"}, "expires_at": 1760201299, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMTk3Njk5LCJleHAiOjE3NjAyMDEyOTksInN1YiI6ImFkbWluLXRlc3QiLCJlbWFpbCI6ImFkbWluQHRlc3QuY29tIiwiZmlyc3RfbmFtZSI6IkFkbWluIiwibGFzdF9uYW1lIjoiVGVzdCJ9.yYSJEWeKNj6UbT77sak5rgKaGHe8QFINKsW7vRoFpCENQGsbgo7DofYaiWMHzoYhhZkBNyT1FwydU53pjnr4UNVjKZpjqiN0MI8o2XiUK2J9fmerwkMVyihPOJsInE909eF6NYlaAQKuyEPNATRnd15VBXFHL9yo8o9CiaNQSpX1uwJh8NZVxOCShas5uGVuvSTjIApVFauI7eCrbPkUZIygWzGZ0HkattdvQGTmLvuAbmQqptHadZCBUTdg7Sh2SCnQBTgzR6-9fsMMTWoP-4fXRQSojeH1ioxE4z6LCvupCyALEQkL8z4LPmKvjOgbzLAuop9ZIhv0NRg-Pjbt2Q", "refresh_token": "eyJzdWIiOiJhZG1pbi10ZXN0IiwiZW1haWwiOiJhZG1pbkB0ZXN0LmNvbSIsImZpcnN0X25hbWUiOiJBZG1pbiIsImxhc3RfbmFtZSI6IlRlc3QifQ"}}}	2025-10-18 15:48:47
YfwL6PA7Xv2fL1R4Saj7uVlxWClGbCj_	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T14:51:13.614Z", "httpOnly": true, "originalMaxAge": 604800000}}	2025-10-18 14:51:16
i1-TNkwzaiBtwt7prUEQc0IlverS_FB5	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T09:55:07.280Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760180106, "iat": 1760176506, "iss": "https://test-mock-oidc.replit.app/", "jti": "8ed556ffcd8e0b7c03f612e8699504dc", "sub": "test-admin-001", "email": "admin@vigilanza.test", "auth_time": 1760176506, "last_name": "Admin", "first_name": "Test"}, "expires_at": 1760180106, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMTc2NTA2LCJleHAiOjE3NjAxODAxMDYsInN1YiI6InRlc3QtYWRtaW4tMDAxIiwiZW1haWwiOiJhZG1pbkB2aWdpbGFuemEudGVzdCIsImZpcnN0X25hbWUiOiJUZXN0IiwibGFzdF9uYW1lIjoiQWRtaW4ifQ.WmdnfET4FTruZT7cL4qWxPccjGmPwjIkRen_xd1JXhCaqE8W99MeATkMArt4kbKJQZ8hrorWtRpZ5iOzl8563eybH7xufLwfPTjD6gR5IPYj2eyj69yzs0El2_hjJaUkTHz1qRSyxK815PAQ8-qxt-qW_iWl2DUeVgnYSZpu2ZpIEdhZdsDOly4mOvCtm6Y3wpTzAOLaQmO8dnJHfiD6L1xmCU7OB1KkVwnC74GZYe4rU6dwQbGc9dz513U2sL9eviCwZkT69-W4cM4hbooA9Ik5WVHlwUTs8mFnDJN2IqN_jxei97cY1c0ahibM2JN7wJRE0gz2C6w1kQJhldFNoA", "refresh_token": "eyJzdWIiOiJ0ZXN0LWFkbWluLTAwMSIsImVtYWlsIjoiYWRtaW5AdmlnaWxhbnphLnRlc3QiLCJmaXJzdF9uYW1lIjoiVGVzdCIsImxhc3RfbmFtZSI6IkFkbWluIn0"}}}	2025-10-18 09:55:42
-U9sF1yoO4caKgRnSqmF_MgbJpJvFQ8C	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T19:25:48.729Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760214348, "iat": 1760210748, "iss": "https://test-mock-oidc.replit.app/", "jti": "9c53a7347cd119fce6eb7bbd02e65122", "sub": "test-admin-planning-v2", "email": "admin@planning-v2.test", "auth_time": 1760210748, "last_name": "PlanningV2", "first_name": "Admin"}, "expires_at": 1760214348, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMjEwNzQ4LCJleHAiOjE3NjAyMTQzNDgsInN1YiI6InRlc3QtYWRtaW4tcGxhbm5pbmctdjIiLCJlbWFpbCI6ImFkbWluQHBsYW5uaW5nLXYyLnRlc3QiLCJmaXJzdF9uYW1lIjoiQWRtaW4iLCJsYXN0X25hbWUiOiJQbGFubmluZ1YyIn0.P9jkI_LtRrFtfLY5O3tkRalvPM9Db5Lg-s28S1-yyJpEpyZwwhtjFnJG9s4165LntdhP2E4obzXgdm0PHZGrfkBSRQM-ipzWWSEYJR_R78arB6PZZEVB2C0GsBMUrPABL3TA5wZVeIiyDkh_t8rj-TloYV4sP0nccxgtabWZZLdJqnbuzHgPEvVMVP3-TmbqJL-KiwrZpjPuSKape58JAShRq0wG47VuiASkjq1Z2URe8X9ouhNNBFQCmTEuNPyOaG7UpIaj3j3nLacfXtad_gdH6T1Bsez6LaF1WVL2YalRlrsNg0GhfOXSPw3UebLClbKm6UPaTv1qKcf43ufvRg", "refresh_token": "eyJzdWIiOiJ0ZXN0LWFkbWluLXBsYW5uaW5nLXYyIiwiZW1haWwiOiJhZG1pbkBwbGFubmluZy12Mi50ZXN0IiwiZmlyc3RfbmFtZSI6IkFkbWluIiwibGFzdF9uYW1lIjoiUGxhbm5pbmdWMiJ9"}}}	2025-10-18 19:28:10
bf_EBibyQEKJ6BzLDgQt-ixp3tjoVyAE	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T19:18:42.177Z", "httpOnly": true, "originalMaxAge": 604800000}, "passport": {"user": {"claims": {"aud": "6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80", "exp": 1760213921, "iat": 1760210321, "iss": "https://test-mock-oidc.replit.app/", "jti": "92511eea1d9a22cdee4343b6d56bd014", "sub": "test-admin-planning", "email": "admin@planning.test", "auth_time": 1760210321, "last_name": "Planning", "first_name": "Admin"}, "expires_at": 1760213921, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijc4MDgyZTlmZjVhOTA1YjIifQ.eyJpc3MiOiJodHRwczovL3Rlc3QtbW9jay1vaWRjLnJlcGxpdC5hcHAvIiwiaWF0IjoxNzYwMjEwMzIxLCJleHAiOjE3NjAyMTM5MjEsInN1YiI6InRlc3QtYWRtaW4tcGxhbm5pbmciLCJlbWFpbCI6ImFkbWluQHBsYW5uaW5nLnRlc3QiLCJmaXJzdF9uYW1lIjoiQWRtaW4iLCJsYXN0X25hbWUiOiJQbGFubmluZyJ9.c4AuBsI678zxAk6rlhe4Hai5GV-A1jIHvdLfGzAbcxmSmxGE5YKlRz-LJk1dvvt980O2kfXH_j6MoedLyN9xhuYmZ4ovKrCUu0WNHH6qK977ckBJPAt1_FpMopmgPCpYcOpWupz-X1TZbR0kpWXWz5ycNTANAtUmdrDj5JYzzfli4ZAEtTAEjXMWWK0w_-ErkkFmvea8B2JLLslDVAIBK59sAQksSoDPjHY7Ww2cB4m7ykWVp4kXVNH_uW7lbHnd7wgf_XFAbW-LKzpVg37FLZv4Zi7MWwcNG_67ISR5NB6UfLzYlXZFdYuQhty-wOq_DlvtezqGmjC1ekqbcXwpBg", "refresh_token": "eyJzdWIiOiJ0ZXN0LWFkbWluLXBsYW5uaW5nIiwiZW1haWwiOiJhZG1pbkBwbGFubmluZy50ZXN0IiwiZmlyc3RfbmFtZSI6IkFkbWluIiwibGFzdF9uYW1lIjoiUGxhbm5pbmcifQ"}}}	2025-10-18 19:23:05
sIMx1lBq3K5NzCEOvdzEQ-H0ec7hks_i	{"cookie": {"path": "/", "secure": true, "expires": "2025-10-18T15:56:05.693Z", "httpOnly": true, "originalMaxAge": 604800000}}	2025-10-18 15:56:09
\.


--
-- Data for Name: shift_assignments; Type: TABLE DATA; Schema: public; Owner: neondb_owner
--

COPY public.shift_assignments (id, shift_id, guard_id, assigned_at, confirmed_at, check_in_time, check_out_time) FROM stdin;
69698965-69f2-4167-93c3-a5d5ca38b726	4da5e14f-d0a4-46fa-a77f-58f35d55fa6d	bd6451cc-2b35-49f2-9fc6-249a32892fe3	2025-10-11 10:45:03.991232	\N	\N	\N
b333cbb8-cbad-4edb-94b6-885f8d2b30f0	855172fc-ce14-47a0-a01f-294a2cc85898	d969de12-6b2e-4922-856a-25ef7ffb4151	2025-10-11 11:00:38.786784	\N	\N	\N
\.


--
-- Data for Name: shifts; Type: TABLE DATA; Schema: public; Owner: neondb_owner
--

COPY public.shifts (id, site_id, start_time, end_time, status, notes, created_at, updated_at) FROM stdin;
1bc94a2a-b48a-4e96-9da7-53ee4d68a764	7d80b4c8-77c6-4c26-8641-f8a2fbb067cc	2025-10-11 09:55:45.524	2025-10-11 09:55:45.524	planned	\N	2025-10-11 09:55:50.21058	2025-10-11 09:55:50.21058
96b40beb-dac9-4369-8981-e0b011501d08	7d80b4c8-77c6-4c26-8641-f8a2fbb067cc	2025-10-12 08:00:00	2025-10-12 16:00:00	planned	\N	2025-10-11 10:05:22.835039	2025-10-11 10:05:22.835039
ad5c4ddd-1491-4d02-bbde-44cb47964501	7d80b4c8-77c6-4c26-8641-f8a2fbb067cc	2025-10-11 10:09:03.219	2025-10-11 10:09:03.219	planned	\N	2025-10-11 10:09:14.142048	2025-10-11 10:09:14.142048
12eeb4f4-bb02-4e26-86d6-6e681c44eb70	7d80b4c8-77c6-4c26-8641-f8a2fbb067cc	2025-10-15 09:00:00	2025-10-15 17:00:00	planned	\N	2025-10-11 10:12:01.045964	2025-10-11 10:12:01.045964
d1051d76-9dcb-4947-bbcf-9748d6dec917	7d80b4c8-77c6-4c26-8641-f8a2fbb067cc	2025-10-11 10:14:00	2025-10-18 13:16:00	planned	\N	2025-10-11 10:14:11.573726	2025-10-11 10:14:11.573726
0bba1222-fbf1-4b31-9a9c-2a7e1b5722ea	7d80b4c8-77c6-4c26-8641-f8a2fbb067cc	2025-10-17 10:00:00	2025-10-17 18:00:00	planned	\N	2025-10-11 10:14:15.001963	2025-10-11 10:14:15.001963
7ed9101f-822c-443d-bc9a-50ecb59eb21f	7d80b4c8-77c6-4c26-8641-f8a2fbb067cc	2025-10-20 08:00:00	2025-10-20 16:00:00	planned	\N	2025-10-11 10:19:34.302835	2025-10-11 10:19:34.302835
f0a16c0a-d1e9-432a-ac9b-f8ce759d2b03	7d80b4c8-77c6-4c26-8641-f8a2fbb067cc	2025-10-09 10:20:00	2025-10-12 10:20:00	planned	\N	2025-10-11 10:21:03.458271	2025-10-11 10:21:03.458271
6b7876db-f358-458e-b298-1a9aa37ae092	7d80b4c8-77c6-4c26-8641-f8a2fbb067cc	2025-10-22 10:00:00	2025-10-22 18:00:00	planned	\N	2025-10-11 10:25:59.585871	2025-10-11 10:25:59.585871
cd4892cc-bbdb-4248-b522-3661628f9fd1	7d80b4c8-77c6-4c26-8641-f8a2fbb067cc	2025-10-25 09:00:00	2025-10-25 17:00:00	planned	\N	2025-10-11 10:29:31.629532	2025-10-11 10:29:31.629532
4da5e14f-d0a4-46fa-a77f-58f35d55fa6d	7d80b4c8-77c6-4c26-8641-f8a2fbb067cc	2025-11-01 08:00:00	2025-11-01 16:00:00	planned	\N	2025-10-11 10:40:56.469271	2025-10-11 10:40:56.469271
55cde829-6d69-4865-a91b-5686a6bfdacc	c46d254f-769a-4184-9b92-0bd2c7dd9468	2025-11-05 09:00:00	2025-11-05 17:00:00	planned	\N	2025-10-11 10:50:13.34427	2025-10-11 10:50:13.34427
adccf142-4fe3-43b9-aaa5-8239a496b33a	c46d254f-769a-4184-9b92-0bd2c7dd9468	2025-11-05 09:00:00	2025-11-05 17:00:00	planned	\N	2025-10-11 10:51:53.092243	2025-10-11 10:51:53.092243
855172fc-ce14-47a0-a01f-294a2cc85898	7d80b4c8-77c6-4c26-8641-f8a2fbb067cc	2025-11-10 10:00:00	2025-11-10 18:00:00	planned	\N	2025-10-11 10:59:22.833298	2025-10-11 10:59:22.833298
shift-abc-123	site-edit-456	2025-11-02 10:00:00	2025-11-01 14:00:00	completed	\N	2025-10-11 15:55:02.374157	2025-10-11 15:55:42.802
\.


--
-- Data for Name: site_preferences; Type: TABLE DATA; Schema: public; Owner: neondb_owner
--

COPY public.site_preferences (id, site_id, guard_id, preference, priority, reason, created_at) FROM stdin;
\.


--
-- Data for Name: sites; Type: TABLE DATA; Schema: public; Owner: neondb_owner
--

COPY public.sites (id, name, address, client_id, shift_type, min_guards, requires_armed, requires_driver_license, latitude, longitude, is_active, created_at, updated_at) FROM stdin;
76745907-a110-4765-a7c3-de87902385a9	Centro Commerciale Nord	Via Roma 123, Milano	\N	fixed_post	1	f	f	\N	\N	t	2025-10-11 09:32:54.993576	2025-10-11 09:32:54.993576
aeaf38d4-2aa6-4fe3-b981-6c9e1a92cc18	Final Test Site	Via Finale 1	\N	fixed_post	2	f	f	\N	\N	t	2025-10-11 10:10:51.630603	2025-10-11 10:10:51.630603
b479db14-0a4d-4944-812e-cfdf51d234c6	Zod Test Site	Via Zod 1	\N	fixed_post	2	f	f	\N	\N	t	2025-10-11 10:17:56.74085	2025-10-11 10:17:56.74085
28a669ce-dcf2-45d3-ad19-dd7f0126c0ff	Test Site z6X	Via Test 1	\N	fixed_post	2	f	f	\N	\N	t	2025-10-11 10:23:25.629625	2025-10-11 10:23:25.629625
ef1f9633-baf9-4578-8ece-aed2b9e60278	Debug Site	Via Debug 1	\N	fixed_post	1	f	f	\N	\N	t	2025-10-11 10:28:28.07614	2025-10-11 10:28:28.07614
c46d254f-769a-4184-9b92-0bd2c7dd9468	Site Assignment Test s_y	Via Test 456	\N	fixed_post	1	t	f	\N	\N	t	2025-10-11 10:47:07.798685	2025-10-11 10:47:07.798685
6ed41828-85a3-46d1-8000-038d4c943039	Refetch Site	Via Test 1	\N	fixed_post	1	t	f	\N	\N	t	2025-10-11 10:56:41.584119	2025-10-11 10:56:41.584119
site-edit-456	Site UPDATED	Via Milano 77	\N	patrol	5	t	f	\N	\N	t	2025-10-11 15:53:18.999264	2025-10-11 15:54:25.705
7d80b4c8-77c6-4c26-8641-f8a2fbb067cc	Centro Commerciale Test	Via Roma 123, Milano	\N	fixed_post	2	f	f	\N	\N	t	2025-10-11 09:32:22.875284	2025-10-11 19:55:28.047
\.


--
-- Data for Name: training_courses; Type: TABLE DATA; Schema: public; Owner: neondb_owner
--

COPY public.training_courses (id, guard_id, course_name, course_type, scheduled_date, completion_date, expiry_date, status, certificate_url, provider, hours, notes, created_at) FROM stdin;
\.


--
-- Data for Name: users; Type: TABLE DATA; Schema: public; Owner: neondb_owner
--

COPY public.users (id, email, first_name, last_name, profile_image_url, role, created_at, updated_at) FROM stdin;
admin001	admin@vigilanza.it	Mario	Rossi	\N	guard	2025-10-11 09:29:52.16585	2025-10-11 09:29:52.16585
test-admin-001	admin@vigilanza.test	Test	Admin	\N	guard	2025-10-11 09:55:07.018946	2025-10-11 09:55:07.018946
vCRhJG-V	admin-UNbw8C@vigilanza.it	Mario	Rossi	\N	guard	2025-10-11 09:59:42.539995	2025-10-11 09:59:42.539995
RELy01vi	test-jv_1@vigilanza.it	Test	User	\N	guard	2025-10-11 10:03:26.683873	2025-10-11 10:03:26.683873
cS6VwdUj	final-test-T6pt@vigilanza.it	Final	Test	\N	guard	2025-10-11 10:10:40.310873	2025-10-11 10:10:40.310873
IDxjtq9A	final-zod-wxYt@vigilanza.it	Zod	Test	\N	guard	2025-10-11 10:17:37.400835	2025-10-11 10:17:37.400835
JMGdwYph	refine-fix-sigB@vigilanza.it	Refine	Fix	\N	guard	2025-10-11 10:23:06.994371	2025-10-11 10:23:06.994371
eVS7usSc	debug-IoeB@test.it	Debug	User	\N	guard	2025-10-11 10:28:18.161956	2025-10-11 10:28:18.161956
xujCTTYv	assign-test-l71q@vigilanza.it	Assignment	Test	\N	guard	2025-10-11 10:39:18.074376	2025-10-11 10:39:18.074376
K4vWdf31	fix-test-iq8w@vigilanza.it	FixTest	User	\N	guard	2025-10-11 10:46:50.407768	2025-10-11 10:46:50.407768
jGUQSg	refetch-cYC@test.it	Refetch	Test	\N	guard	2025-10-11 10:56:23.656146	2025-10-11 10:56:23.656146
nav-test	nav@test.it	Nav	Test	\N	admin	2025-10-11 14:44:42.051639	2025-10-11 14:47:56.327881
menu-test-user	menu@test.it	Menu	Tester	\N	guard	2025-10-11 15:05:15.256762	2025-10-11 15:05:15.256762
role-test-user	roletest@vigilanza.it	Role	Tester	\N	coordinator	2025-10-11 15:19:18.363578	2025-10-11 15:20:04.305
security-test-admin	security-admin@test.it	Security	Admin	\N	admin	2025-10-11 15:22:47.998495	2025-10-11 15:22:47.998495
48531002	marco@lanzara.eu	Marco	Lanzara	\N	admin	2025-10-11 09:47:16.558501	2025-10-11 15:30:30.389
admin-test	admin@test.com	Admin	Test	\N	admin	2025-10-11 15:48:19.825178	2025-10-11 15:48:19.825178
admin-test-2	admin2@test.com	Admin	Test	\N	admin	2025-10-11 15:50:29.267968	2025-10-11 15:51:03.533
test-admin-planning	admin@planning.test	Admin	Planning	\N	guard	2025-10-11 19:18:41.917524	2025-10-11 19:18:41.917524
test-admin-planning-v2	admin@planning-v2.test	Admin	PlanningV2	\N	admin	2025-10-11 19:25:29.373216	2025-10-11 19:25:48.409
\.


--
-- Name: absence_affected_shifts absence_affected_shifts_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.absence_affected_shifts
    ADD CONSTRAINT absence_affected_shifts_pkey PRIMARY KEY (id);


--
-- Name: absences absences_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.absences
    ADD CONSTRAINT absences_pkey PRIMARY KEY (id);


--
-- Name: certifications certifications_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.certifications
    ADD CONSTRAINT certifications_pkey PRIMARY KEY (id);


--
-- Name: contract_parameters contract_parameters_contract_type_unique; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.contract_parameters
    ADD CONSTRAINT contract_parameters_contract_type_unique UNIQUE (contract_type);


--
-- Name: contract_parameters contract_parameters_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.contract_parameters
    ADD CONSTRAINT contract_parameters_pkey PRIMARY KEY (id);


--
-- Name: guard_constraints guard_constraints_guard_id_unique; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.guard_constraints
    ADD CONSTRAINT guard_constraints_guard_id_unique UNIQUE (guard_id);


--
-- Name: guard_constraints guard_constraints_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.guard_constraints
    ADD CONSTRAINT guard_constraints_pkey PRIMARY KEY (id);


--
-- Name: guards guards_badge_number_unique; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.guards
    ADD CONSTRAINT guards_badge_number_unique UNIQUE (badge_number);


--
-- Name: guards guards_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.guards
    ADD CONSTRAINT guards_pkey PRIMARY KEY (id);


--
-- Name: holiday_assignments holiday_assignments_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.holiday_assignments
    ADD CONSTRAINT holiday_assignments_pkey PRIMARY KEY (id);


--
-- Name: holidays holidays_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.holidays
    ADD CONSTRAINT holidays_pkey PRIMARY KEY (id);


--
-- Name: notifications notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.notifications
    ADD CONSTRAINT notifications_pkey PRIMARY KEY (id);


--
-- Name: sessions sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.sessions
    ADD CONSTRAINT sessions_pkey PRIMARY KEY (sid);


--
-- Name: shift_assignments shift_assignments_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.shift_assignments
    ADD CONSTRAINT shift_assignments_pkey PRIMARY KEY (id);


--
-- Name: shifts shifts_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.shifts
    ADD CONSTRAINT shifts_pkey PRIMARY KEY (id);


--
-- Name: site_preferences site_preferences_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.site_preferences
    ADD CONSTRAINT site_preferences_pkey PRIMARY KEY (id);


--
-- Name: sites sites_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.sites
    ADD CONSTRAINT sites_pkey PRIMARY KEY (id);


--
-- Name: training_courses training_courses_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.training_courses
    ADD CONSTRAINT training_courses_pkey PRIMARY KEY (id);


--
-- Name: users users_email_unique; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.users
    ADD CONSTRAINT users_email_unique UNIQUE (email);


--
-- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.users
    ADD CONSTRAINT users_pkey PRIMARY KEY (id);


--
-- Name: IDX_session_expire; Type: INDEX; Schema: public; Owner: neondb_owner
--

CREATE INDEX "IDX_session_expire" ON public.sessions USING btree (expire);


--
-- Name: unique_absence_shift; Type: INDEX; Schema: public; Owner: neondb_owner
--

CREATE UNIQUE INDEX unique_absence_shift ON public.absence_affected_shifts USING btree (absence_id, shift_id);


--
-- Name: unique_holiday_date_year; Type: INDEX; Schema: public; Owner: neondb_owner
--

CREATE UNIQUE INDEX unique_holiday_date_year ON public.holidays USING btree (date, year);


--
-- Name: unique_holiday_guard; Type: INDEX; Schema: public; Owner: neondb_owner
--

CREATE UNIQUE INDEX unique_holiday_guard ON public.holiday_assignments USING btree (holiday_id, guard_id);


--
-- Name: unique_site_guard_preference; Type: INDEX; Schema: public; Owner: neondb_owner
--

CREATE UNIQUE INDEX unique_site_guard_preference ON public.site_preferences USING btree (site_id, guard_id);


--
-- Name: absence_affected_shifts absence_affected_shifts_absence_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.absence_affected_shifts
    ADD CONSTRAINT absence_affected_shifts_absence_id_fkey FOREIGN KEY (absence_id) REFERENCES public.absences(id) ON DELETE CASCADE;


--
-- Name: absence_affected_shifts absence_affected_shifts_shift_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.absence_affected_shifts
    ADD CONSTRAINT absence_affected_shifts_shift_id_fkey FOREIGN KEY (shift_id) REFERENCES public.shifts(id) ON DELETE CASCADE;


--
-- Name: absences absences_approved_by_users_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.absences
    ADD CONSTRAINT absences_approved_by_users_id_fk FOREIGN KEY (approved_by) REFERENCES public.users(id);


--
-- Name: absences absences_guard_id_guards_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.absences
    ADD CONSTRAINT absences_guard_id_guards_id_fk FOREIGN KEY (guard_id) REFERENCES public.guards(id) ON DELETE CASCADE;


--
-- Name: absences absences_substitute_guard_id_guards_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.absences
    ADD CONSTRAINT absences_substitute_guard_id_guards_id_fk FOREIGN KEY (substitute_guard_id) REFERENCES public.guards(id);


--
-- Name: certifications certifications_guard_id_guards_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.certifications
    ADD CONSTRAINT certifications_guard_id_guards_id_fk FOREIGN KEY (guard_id) REFERENCES public.guards(id) ON DELETE CASCADE;


--
-- Name: guard_constraints guard_constraints_guard_id_guards_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.guard_constraints
    ADD CONSTRAINT guard_constraints_guard_id_guards_id_fk FOREIGN KEY (guard_id) REFERENCES public.guards(id) ON DELETE CASCADE;


--
-- Name: guards guards_user_id_users_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.guards
    ADD CONSTRAINT guards_user_id_users_id_fk FOREIGN KEY (user_id) REFERENCES public.users(id);


--
-- Name: holiday_assignments holiday_assignments_guard_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.holiday_assignments
    ADD CONSTRAINT holiday_assignments_guard_id_fkey FOREIGN KEY (guard_id) REFERENCES public.guards(id) ON DELETE CASCADE;


--
-- Name: holiday_assignments holiday_assignments_holiday_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.holiday_assignments
    ADD CONSTRAINT holiday_assignments_holiday_id_fkey FOREIGN KEY (holiday_id) REFERENCES public.holidays(id) ON DELETE CASCADE;


--
-- Name: holiday_assignments holiday_assignments_shift_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.holiday_assignments
    ADD CONSTRAINT holiday_assignments_shift_id_fkey FOREIGN KEY (shift_id) REFERENCES public.shifts(id) ON DELETE SET NULL;


--
-- Name: notifications notifications_user_id_users_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.notifications
    ADD CONSTRAINT notifications_user_id_users_id_fk FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;


--
-- Name: shift_assignments shift_assignments_guard_id_guards_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.shift_assignments
    ADD CONSTRAINT shift_assignments_guard_id_guards_id_fk FOREIGN KEY (guard_id) REFERENCES public.guards(id) ON DELETE CASCADE;


--
-- Name: shift_assignments shift_assignments_shift_id_shifts_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.shift_assignments
    ADD CONSTRAINT shift_assignments_shift_id_shifts_id_fk FOREIGN KEY (shift_id) REFERENCES public.shifts(id) ON DELETE CASCADE;


--
-- Name: shifts shifts_site_id_sites_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.shifts
    ADD CONSTRAINT shifts_site_id_sites_id_fk FOREIGN KEY (site_id) REFERENCES public.sites(id) ON DELETE CASCADE;


--
-- Name: site_preferences site_preferences_guard_id_guards_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.site_preferences
    ADD CONSTRAINT site_preferences_guard_id_guards_id_fk FOREIGN KEY (guard_id) REFERENCES public.guards(id) ON DELETE CASCADE;


--
-- Name: site_preferences site_preferences_site_id_sites_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.site_preferences
    ADD CONSTRAINT site_preferences_site_id_sites_id_fk FOREIGN KEY (site_id) REFERENCES public.sites(id) ON DELETE CASCADE;


--
-- Name: sites sites_client_id_users_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.sites
    ADD CONSTRAINT sites_client_id_users_id_fk FOREIGN KEY (client_id) REFERENCES public.users(id);


--
-- Name: training_courses training_courses_guard_id_guards_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner
--

ALTER TABLE ONLY public.training_courses
    ADD CONSTRAINT training_courses_guard_id_guards_id_fk FOREIGN KEY (guard_id) REFERENCES public.guards(id) ON DELETE CASCADE;


--
-- Name: DEFAULT PRIVILEGES FOR SEQUENCES; Type: DEFAULT ACL; Schema: public; Owner: cloud_admin
--

ALTER DEFAULT PRIVILEGES FOR ROLE cloud_admin IN SCHEMA public GRANT ALL ON SEQUENCES TO neon_superuser WITH GRANT OPTION;


--
-- 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;


--
-- PostgreSQL database dump complete
--

