{
  "id": "477cddf9-970f-41c5-9cad-c1ed48c2bedf",
  "prevId": "00000000-0000-0000-0000-000000000000",
  "version": "7",
  "dialect": "postgresql",
  "tables": {
    "public.appointments": {
      "name": "appointments",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "client_id": {
          "name": "client_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "pet_id": {
          "name": "pet_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "service_id": {
          "name": "service_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "staff_id": {
          "name": "staff_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": false
        },
        "status": {
          "name": "status",
          "type": "appointment_status",
          "typeSchema": "public",
          "primaryKey": false,
          "notNull": true,
          "default": "'scheduled'"
        },
        "start_time": {
          "name": "start_time",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true
        },
        "end_time": {
          "name": "end_time",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true
        },
        "notes": {
          "name": "notes",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "price_cents": {
          "name": "price_cents",
          "type": "integer",
          "primaryKey": false,
          "notNull": false
        },
        "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": {
        "appointments_client_id_clients_id_fk": {
          "name": "appointments_client_id_clients_id_fk",
          "tableFrom": "appointments",
          "tableTo": "clients",
          "columnsFrom": [
            "client_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        },
        "appointments_pet_id_pets_id_fk": {
          "name": "appointments_pet_id_pets_id_fk",
          "tableFrom": "appointments",
          "tableTo": "pets",
          "columnsFrom": [
            "pet_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        },
        "appointments_service_id_services_id_fk": {
          "name": "appointments_service_id_services_id_fk",
          "tableFrom": "appointments",
          "tableTo": "services",
          "columnsFrom": [
            "service_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "restrict",
          "onUpdate": "no action"
        },
        "appointments_staff_id_staff_id_fk": {
          "name": "appointments_staff_id_staff_id_fk",
          "tableFrom": "appointments",
          "tableTo": "staff",
          "columnsFrom": [
            "staff_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "set null",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.clients": {
      "name": "clients",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "email": {
          "name": "email",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "phone": {
          "name": "phone",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "address": {
          "name": "address",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "notes": {
          "name": "notes",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "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": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.pets": {
      "name": "pets",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "client_id": {
          "name": "client_id",
          "type": "uuid",
          "primaryKey": false,
          "notNull": true
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "species": {
          "name": "species",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "breed": {
          "name": "breed",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "weight_kg": {
          "name": "weight_kg",
          "type": "numeric(5, 2)",
          "primaryKey": false,
          "notNull": false
        },
        "date_of_birth": {
          "name": "date_of_birth",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": false
        },
        "grooming_notes": {
          "name": "grooming_notes",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "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": {
        "pets_client_id_clients_id_fk": {
          "name": "pets_client_id_clients_id_fk",
          "tableFrom": "pets",
          "tableTo": "clients",
          "columnsFrom": [
            "client_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "cascade",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.services": {
      "name": "services",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "base_price_cents": {
          "name": "base_price_cents",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "duration_minutes": {
          "name": "duration_minutes",
          "type": "integer",
          "primaryKey": false,
          "notNull": true
        },
        "active": {
          "name": "active",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": 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": {},
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    },
    "public.staff": {
      "name": "staff",
      "schema": "",
      "columns": {
        "id": {
          "name": "id",
          "type": "uuid",
          "primaryKey": true,
          "notNull": true,
          "default": "gen_random_uuid()"
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "email": {
          "name": "email",
          "type": "text",
          "primaryKey": false,
          "notNull": true
        },
        "oidc_sub": {
          "name": "oidc_sub",
          "type": "text",
          "primaryKey": false,
          "notNull": false
        },
        "role": {
          "name": "role",
          "type": "staff_role",
          "typeSchema": "public",
          "primaryKey": false,
          "notNull": true,
          "default": "'groomer'"
        },
        "active": {
          "name": "active",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "default": 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": {
        "staff_email_unique": {
          "name": "staff_email_unique",
          "nullsNotDistinct": false,
          "columns": [
            "email"
          ]
        },
        "staff_oidc_sub_unique": {
          "name": "staff_oidc_sub_unique",
          "nullsNotDistinct": false,
          "columns": [
            "oidc_sub"
          ]
        }
      },
      "policies": {},
      "checkConstraints": {},
      "isRLSEnabled": false
    }
  },
  "enums": {
    "public.appointment_status": {
      "name": "appointment_status",
      "schema": "public",
      "values": [
        "scheduled",
        "confirmed",
        "in_progress",
        "completed",
        "cancelled",
        "no_show"
      ]
    },
    "public.staff_role": {
      "name": "staff_role",
      "schema": "public",
      "values": [
        "groomer",
        "receptionist",
        "manager"
      ]
    }
  },
  "schemas": {},
  "sequences": {},
  "roles": {},
  "policies": {},
  "views": {},
  "_meta": {
    "columns": {},
    "schemas": {},
    "tables": {}
  }
}