{
  "id": "726f8502-95ab-458f-83e5-9897a8b46a03",
  "prevId": "a189259c-e77c-4561-8a6c-c2f2fe5c9eb4",
  "version": "7",
  "dialect": "postgresql",
  "tables": {
    "public.agent": {
      "name": "agent",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "descriptions": {
          "name": "descriptions",
          "type": "json",
          "primaryKey": false,
          "notNull": true
        },
        "image": {
          "name": "image",
          "type": "varchar(250000)",
          "primaryKey": false,
          "notNull": false
        },
        "archived": {
          "name": "archived",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.agent_absence": {
      "name": "agent_absence",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "agent_id": {
          "name": "agent_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "start_date": {
          "name": "start_date",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true
        },
        "end_date": {
          "name": "end_date",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true
        },
        "absence_type": {
          "name": "absence_type",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "default": "''"
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        }
      },
      "indexes": {},
      "foreignKeys": {
        "agent_absence_agent_id_agent_id_fk": {
          "name": "agent_absence_agent_id_agent_id_fk",
          "tableFrom": "agent_absence",
          "tableTo": "agent",
          "columnsFrom": ["agent_id"],
          "columnsTo": ["id"],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.appointment": {
      "name": "appointment",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tunnel_id": {
          "name": "tunnel_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "channel_id": {
          "name": "channel_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "agent_id": {
          "name": "agent_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "appointment_date": {
          "name": "appointment_date",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true
        },
        "duration": {
          "name": "duration",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "expiry_date": {
          "name": "expiry_date",
          "type": "date",
          "primaryKey": false,
          "notNull": false
        },
        "status": {
          "name": "status",
          "type": "appointment_status",
          "typeSchema": "public",
          "primaryKey": false,
          "notNull": true
        },
        "encrypted_data": {
          "name": "encrypted_data",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "data_key": {
          "name": "data_key",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "encrypted_payload": {
          "name": "encrypted_payload",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "iv": {
          "name": "iv",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "auth_tag": {
          "name": "auth_tag",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": false,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": false,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {
        "appointment_tunnel_id_client_appointment_tunnel_id_fk": {
          "name": "appointment_tunnel_id_client_appointment_tunnel_id_fk",
          "tableFrom": "appointment",
          "tableTo": "client_appointment_tunnel",
          "columnsFrom": ["tunnel_id"],
          "columnsTo": ["id"],
          "onDelete": "no action",
          "onUpdate": "no action"
        },
        "appointment_channel_id_channel_id_fk": {
          "name": "appointment_channel_id_channel_id_fk",
          "tableFrom": "appointment",
          "tableTo": "channel",
          "columnsFrom": ["channel_id"],
          "columnsTo": ["id"],
          "onDelete": "no action",
          "onUpdate": "no action"
        },
        "appointment_agent_id_agent_id_fk": {
          "name": "appointment_agent_id_agent_id_fk",
          "tableFrom": "appointment",
          "tableTo": "agent",
          "columnsFrom": ["agent_id"],
          "columnsTo": ["id"],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.appointment_key_share": {
      "name": "appointment_key_share",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "appointment_id": {
          "name": "appointment_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "encrypted_key": {
          "name": "encrypted_key",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        }
      },
      "indexes": {},
      "foreignKeys": {
        "appointment_key_share_appointment_id_appointment_id_fk": {
          "name": "appointment_key_share_appointment_id_appointment_id_fk",
          "tableFrom": "appointment_key_share",
          "tableTo": "appointment",
          "columnsFrom": ["appointment_id"],
          "columnsTo": ["id"],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.auth_challenge": {
      "name": "auth_challenge",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "text",
          "primaryKey": true,
          "notNull": true
        },
        "challenge": {
          "name": "challenge",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "email_hash": {
          "name": "email_hash",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "expires_at": {
          "name": "expires_at",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true
        },
        "consumed": {
          "name": "consumed",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.booking_access_token": {
      "name": "booking_access_token",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "text",
          "primaryKey": true,
          "notNull": true
        },
        "scope": {
          "name": "scope",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "tenant_id": {
          "name": "tenant_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "email_hash": {
          "name": "email_hash",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "tunnel_id": {
          "name": "tunnel_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "client_public_key": {
          "name": "client_public_key",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "expires_at": {
          "name": "expires_at",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true
        },
        "consumed": {
          "name": "consumed",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.channel": {
      "name": "channel",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "names": {
          "name": "names",
          "type": "json",
          "primaryKey": false,
          "notNull": true
        },
        "color": {
          "name": "color",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "paused": {
          "name": "paused",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "descriptions": {
          "name": "descriptions",
          "type": "json",
          "primaryKey": false,
          "notNull": true
        },
        "is_public": {
          "name": "is_public",
          "type": "boolean",
          "primaryKey": false,
          "notNull": false
        },
        "requires_confirmation": {
          "name": "requires_confirmation",
          "type": "boolean",
          "primaryKey": false,
          "notNull": false
        },
        "archived": {
          "name": "archived",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.channel_agent": {
      "name": "channel_agent",
      "schema": "",
      "columns": {
        "channel_id": {
          "name": "channel_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "agent_id": {
          "name": "agent_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        }
      },
      "indexes": {},
      "foreignKeys": {
        "channel_agent_channel_id_channel_id_fk": {
          "name": "channel_agent_channel_id_channel_id_fk",
          "tableFrom": "channel_agent",
          "tableTo": "channel",
          "columnsFrom": ["channel_id"],
          "columnsTo": ["id"],
          "onDelete": "no action",
          "onUpdate": "no action"
        },
        "channel_agent_agent_id_agent_id_fk": {
          "name": "channel_agent_agent_id_agent_id_fk",
          "tableFrom": "channel_agent",
          "tableTo": "agent",
          "columnsFrom": ["agent_id"],
          "columnsTo": ["id"],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.channel_slot_template": {
      "name": "channel_slot_template",
      "schema": "",
      "columns": {
        "channel_id": {
          "name": "channel_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "slot_template_id": {
          "name": "slot_template_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        }
      },
      "indexes": {},
      "foreignKeys": {
        "channel_slot_template_channel_id_channel_id_fk": {
          "name": "channel_slot_template_channel_id_channel_id_fk",
          "tableFrom": "channel_slot_template",
          "tableTo": "channel",
          "columnsFrom": ["channel_id"],
          "columnsTo": ["id"],
          "onDelete": "no action",
          "onUpdate": "no action"
        },
        "channel_slot_template_slot_template_id_slotTemplate_id_fk": {
          "name": "channel_slot_template_slot_template_id_slotTemplate_id_fk",
          "tableFrom": "channel_slot_template",
          "tableTo": "slotTemplate",
          "columnsFrom": ["slot_template_id"],
          "columnsTo": ["id"],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.channel_staff": {
      "name": "channel_staff",
      "schema": "",
      "columns": {
        "channel_id": {
          "name": "channel_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "staff_id": {
          "name": "staff_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        }
      },
      "indexes": {},
      "foreignKeys": {
        "channel_staff_channel_id_channel_id_fk": {
          "name": "channel_staff_channel_id_channel_id_fk",
          "tableFrom": "channel_staff",
          "tableTo": "channel",
          "columnsFrom": ["channel_id"],
          "columnsTo": ["id"],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.client_appointment_tunnel": {
      "name": "client_appointment_tunnel",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "email_hash": {
          "name": "email_hash",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "client_public_key": {
          "name": "client_public_key",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "private_key_share": {
          "name": "private_key_share",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "client_key_share": {
          "name": "client_key_share",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "client_appointment_tunnel_email_hash_unique": {
          "name": "client_appointment_tunnel_email_hash_unique",
          "nullsNotDistinct": false,
          "columns": ["email_hash"]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.client_pin_reset_token": {
      "name": "client_pin_reset_token",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "token": {
          "name": "token",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "email_hash": {
          "name": "email_hash",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "expires_at": {
          "name": "expires_at",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true
        },
        "used": {
          "name": "used",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {
        "client_pin_reset_token_token_unique": {
          "name": "client_pin_reset_token_token_unique",
          "nullsNotDistinct": false,
          "columns": ["token"]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.client_tunnel_staff_key_share": {
      "name": "client_tunnel_staff_key_share",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "tunnel_id": {
          "name": "tunnel_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "encrypted_tunnel_key": {
          "name": "encrypted_tunnel_key",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {
        "client_tunnel_staff_key_share_tunnel_id_client_appointment_tunnel_id_fk": {
          "name": "client_tunnel_staff_key_share_tunnel_id_client_appointment_tunnel_id_fk",
          "tableFrom": "client_tunnel_staff_key_share",
          "tableTo": "client_appointment_tunnel",
          "columnsFrom": ["tunnel_id"],
          "columnsTo": ["id"],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.notification": {
      "name": "notification",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "staff_id": {
          "name": "staff_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "type": {
          "name": "type",
          "type": "notification_type",
          "typeSchema": "public",
          "primaryKey": false,
          "notNull": true,
          "default": "'APPOINTMENT_CONFIRMED'"
        },
        "meta_data": {
          "name": "meta_data",
          "type": "json",
          "primaryKey": false,
          "notNull": false
        },
        "is_read": {
          "name": "is_read",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": false
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.slotTemplate": {
      "name": "slotTemplate",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "weekdays": {
          "name": "weekdays",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "from": {
          "name": "from",
          "type": "time",
          "primaryKey": false,
          "notNull": true
        },
        "to": {
          "name": "to",
          "type": "time",
          "primaryKey": false,
          "notNull": true
        },
        "duration": {
          "name": "duration",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.staff_crypto": {
      "name": "staff_crypto",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "user_id": {
          "name": "user_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "public_key": {
          "name": "public_key",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "private_key_share": {
          "name": "private_key_share",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "passkey_id": {
          "name": "passkey_id",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "created_at": {
          "name": "created_at",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "default": "now()"
        },
        "is_active": {
          "name": "is_active",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": true
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    }
  },
  "enums": {
    "public.appointment_status": {
      "name": "appointment_status",
      "schema": "public",
      "values": ["NEW", "CONFIRMED", "HELD", "REJECTED", "NO_SHOW"]
    },
    "public.notification_type": {
      "name": "notification_type",
      "schema": "public",
      "values": ["APPOINTMENT_CONFIRMED", "APPOINTMENT_CANCELLED", "APPOINTMENT_REQUESTED"]
    }
  },
  "schemas": {},
  "sequences": {},
  "roles": {},
  "policies": {},
  "views": {},
  "_meta": {
    "columns": {},
    "schemas": {},
    "tables": {}
  }
}
