2909 lines
73 KiB
JSON
2909 lines
73 KiB
JSON
{
|
|||
|
|
"id": "4f7f6f51-9a35-4777-807c-18d426a9e04f",
|
||
|
|
"prevId": "1e1dc489-9e65-4f8d-ae23-e8f956b17899",
|
||
|
|
"version": "7",
|
||
|
|
"dialect": "postgresql",
|
||
|
|
"tables": {
|
||
|
|
"public.account": {
|
||
|
|
"name": "account",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"account_id": {
|
||
|
|
"name": "account_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"provider_id": {
|
||
|
|
"name": "provider_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"access_token": {
|
||
|
|
"name": "access_token",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"refresh_token": {
|
||
|
|
"name": "refresh_token",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"id_token": {
|
||
|
|
"name": "id_token",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"access_token_expires_at": {
|
||
|
|
"name": "access_token_expires_at",
|
||
|
|
"type": "timestamp",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"refresh_token_expires_at": {
|
||
|
|
"name": "refresh_token_expires_at",
|
||
|
|
"type": "timestamp",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"scope": {
|
||
|
|
"name": "scope",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"password": {
|
||
|
|
"name": "password",
|
||
|
|
"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": {
|
||
|
|
"account_user_id_user_id_fk": {
|
||
|
|
"name": "account_user_id_user_id_fk",
|
||
|
|
"tableFrom": "account",
|
||
|
|
"tableTo": "user",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.account_members": {
|
||
|
|
"name": "account_members",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"owner_id": {
|
||
|
|
"name": "owner_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"member_id": {
|
||
|
|
"name": "member_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"email": {
|
||
|
|
"name": "email",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"role": {
|
||
|
|
"name": "role",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'member'"
|
||
|
|
},
|
||
|
|
"status": {
|
||
|
|
"name": "status",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'pending'"
|
||
|
|
},
|
||
|
|
"invite_token": {
|
||
|
|
"name": "invite_token",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()::text"
|
||
|
|
},
|
||
|
|
"accepted_at": {
|
||
|
|
"name": "accepted_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
},
|
||
|
|
"updated_at": {
|
||
|
|
"name": "updated_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"account_members_owner_id_profiles_id_fk": {
|
||
|
|
"name": "account_members_owner_id_profiles_id_fk",
|
||
|
|
"tableFrom": "account_members",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"owner_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"account_members_member_id_profiles_id_fk": {
|
||
|
|
"name": "account_members_member_id_profiles_id_fk",
|
||
|
|
"tableFrom": "account_members",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"member_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {
|
||
|
|
"account_members_invite_token_unique": {
|
||
|
|
"name": "account_members_invite_token_unique",
|
||
|
|
"nullsNotDistinct": false,
|
||
|
|
"columns": [
|
||
|
|
"invite_token"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.activity_log": {
|
||
|
|
"name": "activity_log",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"type": {
|
||
|
|
"name": "type",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"title": {
|
||
|
|
"name": "title",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"description": {
|
||
|
|
"name": "description",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"entity_type": {
|
||
|
|
"name": "entity_type",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"entity_id": {
|
||
|
|
"name": "entity_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"metadata": {
|
||
|
|
"name": "metadata",
|
||
|
|
"type": "jsonb",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'{}'::jsonb"
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"activity_log_user_id_profiles_id_fk": {
|
||
|
|
"name": "activity_log_user_id_profiles_id_fk",
|
||
|
|
"tableFrom": "activity_log",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.admin_audit_log": {
|
||
|
|
"name": "admin_audit_log",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"admin_id": {
|
||
|
|
"name": "admin_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"action": {
|
||
|
|
"name": "action",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"target_user_id": {
|
||
|
|
"name": "target_user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"metadata": {
|
||
|
|
"name": "metadata",
|
||
|
|
"type": "jsonb",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'{}'::jsonb"
|
||
|
|
},
|
||
|
|
"ip_address": {
|
||
|
|
"name": "ip_address",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"admin_audit_log_admin_id_user_id_fk": {
|
||
|
|
"name": "admin_audit_log_admin_id_user_id_fk",
|
||
|
|
"tableFrom": "admin_audit_log",
|
||
|
|
"tableTo": "user",
|
||
|
|
"columnsFrom": [
|
||
|
|
"admin_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "set null",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.ai_predictions": {
|
||
|
|
"name": "ai_predictions",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"type": {
|
||
|
|
"name": "type",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"title": {
|
||
|
|
"name": "title",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"prediction": {
|
||
|
|
"name": "prediction",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"confidence": {
|
||
|
|
"name": "confidence",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"timeframe": {
|
||
|
|
"name": "timeframe",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"risk_level": {
|
||
|
|
"name": "risk_level",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"data": {
|
||
|
|
"name": "data",
|
||
|
|
"type": "jsonb",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"ai_predictions_user_id_profiles_id_fk": {
|
||
|
|
"name": "ai_predictions_user_id_profiles_id_fk",
|
||
|
|
"tableFrom": "ai_predictions",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.ai_recommendations": {
|
||
|
|
"name": "ai_recommendations",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"type": {
|
||
|
|
"name": "type",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"title": {
|
||
|
|
"name": "title",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"description": {
|
||
|
|
"name": "description",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"impact": {
|
||
|
|
"name": "impact",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"priority": {
|
||
|
|
"name": "priority",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'medium'"
|
||
|
|
},
|
||
|
|
"status": {
|
||
|
|
"name": "status",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'pending'"
|
||
|
|
},
|
||
|
|
"action_label": {
|
||
|
|
"name": "action_label",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"action_data": {
|
||
|
|
"name": "action_data",
|
||
|
|
"type": "jsonb",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"applied_at": {
|
||
|
|
"name": "applied_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"dismissed_at": {
|
||
|
|
"name": "dismissed_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
},
|
||
|
|
"updated_at": {
|
||
|
|
"name": "updated_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"ai_recommendations_user_id_profiles_id_fk": {
|
||
|
|
"name": "ai_recommendations_user_id_profiles_id_fk",
|
||
|
|
"tableFrom": "ai_recommendations",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.api_keys": {
|
||
|
|
"name": "api_keys",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"name": {
|
||
|
|
"name": "name",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"key_hash": {
|
||
|
|
"name": "key_hash",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"key_prefix": {
|
||
|
|
"name": "key_prefix",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"last_used_at": {
|
||
|
|
"name": "last_used_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"revoked_at": {
|
||
|
|
"name": "revoked_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"api_keys_user_id_profiles_id_fk": {
|
||
|
|
"name": "api_keys_user_id_profiles_id_fk",
|
||
|
|
"tableFrom": "api_keys",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {
|
||
|
|
"api_keys_key_hash_unique": {
|
||
|
|
"name": "api_keys_key_hash_unique",
|
||
|
|
"nullsNotDistinct": false,
|
||
|
|
"columns": [
|
||
|
|
"key_hash"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.app_settings": {
|
||
|
|
"name": "app_settings",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"key": {
|
||
|
|
"name": "key",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"value": {
|
||
|
|
"name": "value",
|
||
|
|
"type": "jsonb",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'{}'::jsonb"
|
||
|
|
},
|
||
|
|
"updated_at": {
|
||
|
|
"name": "updated_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.documents": {
|
||
|
|
"name": "documents",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"property_id": {
|
||
|
|
"name": "property_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"tenant_id": {
|
||
|
|
"name": "tenant_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"name": {
|
||
|
|
"name": "name",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"file_url": {
|
||
|
|
"name": "file_url",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"storage_path": {
|
||
|
|
"name": "storage_path",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"file_type": {
|
||
|
|
"name": "file_type",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"file_size": {
|
||
|
|
"name": "file_size",
|
||
|
|
"type": "integer",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"category": {
|
||
|
|
"name": "category",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'other'"
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"documents_user_id_profiles_id_fk": {
|
||
|
|
"name": "documents_user_id_profiles_id_fk",
|
||
|
|
"tableFrom": "documents",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"documents_property_id_properties_id_fk": {
|
||
|
|
"name": "documents_property_id_properties_id_fk",
|
||
|
|
"tableFrom": "documents",
|
||
|
|
"tableTo": "properties",
|
||
|
|
"columnsFrom": [
|
||
|
|
"property_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"documents_tenant_id_tenants_id_fk": {
|
||
|
|
"name": "documents_tenant_id_tenants_id_fk",
|
||
|
|
"tableFrom": "documents",
|
||
|
|
"tableTo": "tenants",
|
||
|
|
"columnsFrom": [
|
||
|
|
"tenant_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "set null",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.expenses": {
|
||
|
|
"name": "expenses",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"property_id": {
|
||
|
|
"name": "property_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"unit_id": {
|
||
|
|
"name": "unit_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"category": {
|
||
|
|
"name": "category",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"description": {
|
||
|
|
"name": "description",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"amount": {
|
||
|
|
"name": "amount",
|
||
|
|
"type": "numeric(10, 2)",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"expense_date": {
|
||
|
|
"name": "expense_date",
|
||
|
|
"type": "date",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"vendor": {
|
||
|
|
"name": "vendor",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"receipt_url": {
|
||
|
|
"name": "receipt_url",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"is_recurring": {
|
||
|
|
"name": "is_recurring",
|
||
|
|
"type": "boolean",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": false
|
||
|
|
},
|
||
|
|
"recurrence": {
|
||
|
|
"name": "recurrence",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"notes": {
|
||
|
|
"name": "notes",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
},
|
||
|
|
"updated_at": {
|
||
|
|
"name": "updated_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"expenses_user_id_profiles_id_fk": {
|
||
|
|
"name": "expenses_user_id_profiles_id_fk",
|
||
|
|
"tableFrom": "expenses",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"expenses_property_id_properties_id_fk": {
|
||
|
|
"name": "expenses_property_id_properties_id_fk",
|
||
|
|
"tableFrom": "expenses",
|
||
|
|
"tableTo": "properties",
|
||
|
|
"columnsFrom": [
|
||
|
|
"property_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"expenses_unit_id_units_id_fk": {
|
||
|
|
"name": "expenses_unit_id_units_id_fk",
|
||
|
|
"tableFrom": "expenses",
|
||
|
|
"tableTo": "units",
|
||
|
|
"columnsFrom": [
|
||
|
|
"unit_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "set null",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.follow_up_log": {
|
||
|
|
"name": "follow_up_log",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"rule_id": {
|
||
|
|
"name": "rule_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"type": {
|
||
|
|
"name": "type",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"recipient_name": {
|
||
|
|
"name": "recipient_name",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"recipient_email": {
|
||
|
|
"name": "recipient_email",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"subject": {
|
||
|
|
"name": "subject",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"message": {
|
||
|
|
"name": "message",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"status": {
|
||
|
|
"name": "status",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'sent'"
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"follow_up_log_user_id_profiles_id_fk": {
|
||
|
|
"name": "follow_up_log_user_id_profiles_id_fk",
|
||
|
|
"tableFrom": "follow_up_log",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"follow_up_log_rule_id_follow_up_rules_id_fk": {
|
||
|
|
"name": "follow_up_log_rule_id_follow_up_rules_id_fk",
|
||
|
|
"tableFrom": "follow_up_log",
|
||
|
|
"tableTo": "follow_up_rules",
|
||
|
|
"columnsFrom": [
|
||
|
|
"rule_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.follow_up_rules": {
|
||
|
|
"name": "follow_up_rules",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"type": {
|
||
|
|
"name": "type",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"name": {
|
||
|
|
"name": "name",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"trigger_days": {
|
||
|
|
"name": "trigger_days",
|
||
|
|
"type": "integer",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": 3
|
||
|
|
},
|
||
|
|
"message_template": {
|
||
|
|
"name": "message_template",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"is_active": {
|
||
|
|
"name": "is_active",
|
||
|
|
"type": "boolean",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": true
|
||
|
|
},
|
||
|
|
"last_run_at": {
|
||
|
|
"name": "last_run_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
},
|
||
|
|
"updated_at": {
|
||
|
|
"name": "updated_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"follow_up_rules_user_id_profiles_id_fk": {
|
||
|
|
"name": "follow_up_rules_user_id_profiles_id_fk",
|
||
|
|
"tableFrom": "follow_up_rules",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.inspections": {
|
||
|
|
"name": "inspections",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"property_id": {
|
||
|
|
"name": "property_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"unit_id": {
|
||
|
|
"name": "unit_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"type": {
|
||
|
|
"name": "type",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"date": {
|
||
|
|
"name": "date",
|
||
|
|
"type": "date",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"status": {
|
||
|
|
"name": "status",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'draft'"
|
||
|
|
},
|
||
|
|
"items": {
|
||
|
|
"name": "items",
|
||
|
|
"type": "jsonb",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'[]'::jsonb"
|
||
|
|
},
|
||
|
|
"notes": {
|
||
|
|
"name": "notes",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
},
|
||
|
|
"updated_at": {
|
||
|
|
"name": "updated_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"inspections_user_id_profiles_id_fk": {
|
||
|
|
"name": "inspections_user_id_profiles_id_fk",
|
||
|
|
"tableFrom": "inspections",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"inspections_property_id_properties_id_fk": {
|
||
|
|
"name": "inspections_property_id_properties_id_fk",
|
||
|
|
"tableFrom": "inspections",
|
||
|
|
"tableTo": "properties",
|
||
|
|
"columnsFrom": [
|
||
|
|
"property_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"inspections_unit_id_units_id_fk": {
|
||
|
|
"name": "inspections_unit_id_units_id_fk",
|
||
|
|
"tableFrom": "inspections",
|
||
|
|
"tableTo": "units",
|
||
|
|
"columnsFrom": [
|
||
|
|
"unit_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "set null",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.leases": {
|
||
|
|
"name": "leases",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"tenant_id": {
|
||
|
|
"name": "tenant_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"property_id": {
|
||
|
|
"name": "property_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"unit_id": {
|
||
|
|
"name": "unit_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"lease_start": {
|
||
|
|
"name": "lease_start",
|
||
|
|
"type": "date",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"lease_end": {
|
||
|
|
"name": "lease_end",
|
||
|
|
"type": "date",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"rent_amount": {
|
||
|
|
"name": "rent_amount",
|
||
|
|
"type": "numeric(10, 2)",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"security_deposit": {
|
||
|
|
"name": "security_deposit",
|
||
|
|
"type": "numeric(10, 2)",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"lease_type": {
|
||
|
|
"name": "lease_type",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'fixed'"
|
||
|
|
},
|
||
|
|
"document_url": {
|
||
|
|
"name": "document_url",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"status": {
|
||
|
|
"name": "status",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'active'"
|
||
|
|
},
|
||
|
|
"auto_renew": {
|
||
|
|
"name": "auto_renew",
|
||
|
|
"type": "boolean",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": false
|
||
|
|
},
|
||
|
|
"reminder_60_sent": {
|
||
|
|
"name": "reminder_60_sent",
|
||
|
|
"type": "boolean",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": false
|
||
|
|
},
|
||
|
|
"reminder_30_sent": {
|
||
|
|
"name": "reminder_30_sent",
|
||
|
|
"type": "boolean",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": false
|
||
|
|
},
|
||
|
|
"reminder_7_sent": {
|
||
|
|
"name": "reminder_7_sent",
|
||
|
|
"type": "boolean",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": false
|
||
|
|
},
|
||
|
|
"notes": {
|
||
|
|
"name": "notes",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
},
|
||
|
|
"updated_at": {
|
||
|
|
"name": "updated_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"leases_user_id_profiles_id_fk": {
|
||
|
|
"name": "leases_user_id_profiles_id_fk",
|
||
|
|
"tableFrom": "leases",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"leases_tenant_id_tenants_id_fk": {
|
||
|
|
"name": "leases_tenant_id_tenants_id_fk",
|
||
|
|
"tableFrom": "leases",
|
||
|
|
"tableTo": "tenants",
|
||
|
|
"columnsFrom": [
|
||
|
|
"tenant_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"leases_property_id_properties_id_fk": {
|
||
|
|
"name": "leases_property_id_properties_id_fk",
|
||
|
|
"tableFrom": "leases",
|
||
|
|
"tableTo": "properties",
|
||
|
|
"columnsFrom": [
|
||
|
|
"property_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"leases_unit_id_units_id_fk": {
|
||
|
|
"name": "leases_unit_id_units_id_fk",
|
||
|
|
"tableFrom": "leases",
|
||
|
|
"tableTo": "units",
|
||
|
|
"columnsFrom": [
|
||
|
|
"unit_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "set null",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.maintenance_requests": {
|
||
|
|
"name": "maintenance_requests",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"tenant_id": {
|
||
|
|
"name": "tenant_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"property_id": {
|
||
|
|
"name": "property_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"unit_id": {
|
||
|
|
"name": "unit_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"title": {
|
||
|
|
"name": "title",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"description": {
|
||
|
|
"name": "description",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"category": {
|
||
|
|
"name": "category",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'general'"
|
||
|
|
},
|
||
|
|
"priority": {
|
||
|
|
"name": "priority",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'medium'"
|
||
|
|
},
|
||
|
|
"status": {
|
||
|
|
"name": "status",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'open'"
|
||
|
|
},
|
||
|
|
"images": {
|
||
|
|
"name": "images",
|
||
|
|
"type": "text[]",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'{}'::text[]"
|
||
|
|
},
|
||
|
|
"assigned_to": {
|
||
|
|
"name": "assigned_to",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"estimated_cost": {
|
||
|
|
"name": "estimated_cost",
|
||
|
|
"type": "numeric(10, 2)",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"actual_cost": {
|
||
|
|
"name": "actual_cost",
|
||
|
|
"type": "numeric(10, 2)",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"resolved_at": {
|
||
|
|
"name": "resolved_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"resolution_notes": {
|
||
|
|
"name": "resolution_notes",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
},
|
||
|
|
"updated_at": {
|
||
|
|
"name": "updated_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"maintenance_requests_user_id_profiles_id_fk": {
|
||
|
|
"name": "maintenance_requests_user_id_profiles_id_fk",
|
||
|
|
"tableFrom": "maintenance_requests",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"maintenance_requests_tenant_id_tenants_id_fk": {
|
||
|
|
"name": "maintenance_requests_tenant_id_tenants_id_fk",
|
||
|
|
"tableFrom": "maintenance_requests",
|
||
|
|
"tableTo": "tenants",
|
||
|
|
"columnsFrom": [
|
||
|
|
"tenant_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "set null",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"maintenance_requests_property_id_properties_id_fk": {
|
||
|
|
"name": "maintenance_requests_property_id_properties_id_fk",
|
||
|
|
"tableFrom": "maintenance_requests",
|
||
|
|
"tableTo": "properties",
|
||
|
|
"columnsFrom": [
|
||
|
|
"property_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"maintenance_requests_unit_id_units_id_fk": {
|
||
|
|
"name": "maintenance_requests_unit_id_units_id_fk",
|
||
|
|
"tableFrom": "maintenance_requests",
|
||
|
|
"tableTo": "units",
|
||
|
|
"columnsFrom": [
|
||
|
|
"unit_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "set null",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.notifications": {
|
||
|
|
"name": "notifications",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"type": {
|
||
|
|
"name": "type",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"recipient_email": {
|
||
|
|
"name": "recipient_email",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"subject": {
|
||
|
|
"name": "subject",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"status": {
|
||
|
|
"name": "status",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'sent'"
|
||
|
|
},
|
||
|
|
"read": {
|
||
|
|
"name": "read",
|
||
|
|
"type": "boolean",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": false
|
||
|
|
},
|
||
|
|
"metadata": {
|
||
|
|
"name": "metadata",
|
||
|
|
"type": "jsonb",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'{}'::jsonb"
|
||
|
|
},
|
||
|
|
"sent_at": {
|
||
|
|
"name": "sent_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"notifications_user_id_profiles_id_fk": {
|
||
|
|
"name": "notifications_user_id_profiles_id_fk",
|
||
|
|
"tableFrom": "notifications",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.profiles": {
|
||
|
|
"name": "profiles",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"email": {
|
||
|
|
"name": "email",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"full_name": {
|
||
|
|
"name": "full_name",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"avatar_url": {
|
||
|
|
"name": "avatar_url",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"phone": {
|
||
|
|
"name": "phone",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"company_name": {
|
||
|
|
"name": "company_name",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"plan": {
|
||
|
|
"name": "plan",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'starter'"
|
||
|
|
},
|
||
|
|
"plan_expires_at": {
|
||
|
|
"name": "plan_expires_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"stripe_customer_id": {
|
||
|
|
"name": "stripe_customer_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"stripe_subscription_id": {
|
||
|
|
"name": "stripe_subscription_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"subscription_status": {
|
||
|
|
"name": "subscription_status",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"trial_ends_at": {
|
||
|
|
"name": "trial_ends_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"onboarding_completed": {
|
||
|
|
"name": "onboarding_completed",
|
||
|
|
"type": "boolean",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": false
|
||
|
|
},
|
||
|
|
"usage_count": {
|
||
|
|
"name": "usage_count",
|
||
|
|
"type": "integer",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": 0
|
||
|
|
},
|
||
|
|
"brand_name": {
|
||
|
|
"name": "brand_name",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"brand_logo_url": {
|
||
|
|
"name": "brand_logo_url",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"brand_color": {
|
||
|
|
"name": "brand_color",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"hide_powered_by": {
|
||
|
|
"name": "hide_powered_by",
|
||
|
|
"type": "boolean",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": false
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
},
|
||
|
|
"updated_at": {
|
||
|
|
"name": "updated_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"profiles_id_user_id_fk": {
|
||
|
|
"name": "profiles_id_user_id_fk",
|
||
|
|
"tableFrom": "profiles",
|
||
|
|
"tableTo": "user",
|
||
|
|
"columnsFrom": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {
|
||
|
|
"profiles_stripe_customer_id_unique": {
|
||
|
|
"name": "profiles_stripe_customer_id_unique",
|
||
|
|
"nullsNotDistinct": false,
|
||
|
|
"columns": [
|
||
|
|
"stripe_customer_id"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.properties": {
|
||
|
|
"name": "properties",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"name": {
|
||
|
|
"name": "name",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"address_line1": {
|
||
|
|
"name": "address_line1",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"address_line2": {
|
||
|
|
"name": "address_line2",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"city": {
|
||
|
|
"name": "city",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"state": {
|
||
|
|
"name": "state",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"postal_code": {
|
||
|
|
"name": "postal_code",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"country": {
|
||
|
|
"name": "country",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'US'"
|
||
|
|
},
|
||
|
|
"property_type": {
|
||
|
|
"name": "property_type",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'residential'"
|
||
|
|
},
|
||
|
|
"total_units": {
|
||
|
|
"name": "total_units",
|
||
|
|
"type": "integer",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": 1
|
||
|
|
},
|
||
|
|
"image_url": {
|
||
|
|
"name": "image_url",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"notes": {
|
||
|
|
"name": "notes",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
},
|
||
|
|
"updated_at": {
|
||
|
|
"name": "updated_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"properties_user_id_profiles_id_fk": {
|
||
|
|
"name": "properties_user_id_profiles_id_fk",
|
||
|
|
"tableFrom": "properties",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.rent_payments": {
|
||
|
|
"name": "rent_payments",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"tenant_id": {
|
||
|
|
"name": "tenant_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"property_id": {
|
||
|
|
"name": "property_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"unit_id": {
|
||
|
|
"name": "unit_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"amount": {
|
||
|
|
"name": "amount",
|
||
|
|
"type": "numeric(10, 2)",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"due_date": {
|
||
|
|
"name": "due_date",
|
||
|
|
"type": "date",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"paid_date": {
|
||
|
|
"name": "paid_date",
|
||
|
|
"type": "date",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"status": {
|
||
|
|
"name": "status",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'pending'"
|
||
|
|
},
|
||
|
|
"payment_method": {
|
||
|
|
"name": "payment_method",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"stripe_payment_link_id": {
|
||
|
|
"name": "stripe_payment_link_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"stripe_payment_intent_id": {
|
||
|
|
"name": "stripe_payment_intent_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"reminder_sent_at": {
|
||
|
|
"name": "reminder_sent_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"late_fee_applied": {
|
||
|
|
"name": "late_fee_applied",
|
||
|
|
"type": "boolean",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": false
|
||
|
|
},
|
||
|
|
"notes": {
|
||
|
|
"name": "notes",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
},
|
||
|
|
"updated_at": {
|
||
|
|
"name": "updated_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"rent_payments_user_id_profiles_id_fk": {
|
||
|
|
"name": "rent_payments_user_id_profiles_id_fk",
|
||
|
|
"tableFrom": "rent_payments",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"rent_payments_tenant_id_tenants_id_fk": {
|
||
|
|
"name": "rent_payments_tenant_id_tenants_id_fk",
|
||
|
|
"tableFrom": "rent_payments",
|
||
|
|
"tableTo": "tenants",
|
||
|
|
"columnsFrom": [
|
||
|
|
"tenant_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"rent_payments_property_id_properties_id_fk": {
|
||
|
|
"name": "rent_payments_property_id_properties_id_fk",
|
||
|
|
"tableFrom": "rent_payments",
|
||
|
|
"tableTo": "properties",
|
||
|
|
"columnsFrom": [
|
||
|
|
"property_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"rent_payments_unit_id_units_id_fk": {
|
||
|
|
"name": "rent_payments_unit_id_units_id_fk",
|
||
|
|
"tableFrom": "rent_payments",
|
||
|
|
"tableTo": "units",
|
||
|
|
"columnsFrom": [
|
||
|
|
"unit_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "set null",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.session": {
|
||
|
|
"name": "session",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"expires_at": {
|
||
|
|
"name": "expires_at",
|
||
|
|
"type": "timestamp",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"token": {
|
||
|
|
"name": "token",
|
||
|
|
"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()"
|
||
|
|
},
|
||
|
|
"ip_address": {
|
||
|
|
"name": "ip_address",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"user_agent": {
|
||
|
|
"name": "user_agent",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"impersonated_by": {
|
||
|
|
"name": "impersonated_by",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"session_user_id_user_id_fk": {
|
||
|
|
"name": "session_user_id_user_id_fk",
|
||
|
|
"tableFrom": "session",
|
||
|
|
"tableTo": "user",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {
|
||
|
|
"session_token_unique": {
|
||
|
|
"name": "session_token_unique",
|
||
|
|
"nullsNotDistinct": false,
|
||
|
|
"columns": [
|
||
|
|
"token"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.tenants": {
|
||
|
|
"name": "tenants",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"property_id": {
|
||
|
|
"name": "property_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"unit_id": {
|
||
|
|
"name": "unit_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"first_name": {
|
||
|
|
"name": "first_name",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"last_name": {
|
||
|
|
"name": "last_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
|
||
|
|
},
|
||
|
|
"emergency_contact_name": {
|
||
|
|
"name": "emergency_contact_name",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"emergency_contact_phone": {
|
||
|
|
"name": "emergency_contact_phone",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"move_in_date": {
|
||
|
|
"name": "move_in_date",
|
||
|
|
"type": "date",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"move_out_date": {
|
||
|
|
"name": "move_out_date",
|
||
|
|
"type": "date",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"status": {
|
||
|
|
"name": "status",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'active'"
|
||
|
|
},
|
||
|
|
"portal_token": {
|
||
|
|
"name": "portal_token",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()::text"
|
||
|
|
},
|
||
|
|
"notes": {
|
||
|
|
"name": "notes",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
},
|
||
|
|
"updated_at": {
|
||
|
|
"name": "updated_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"tenants_user_id_profiles_id_fk": {
|
||
|
|
"name": "tenants_user_id_profiles_id_fk",
|
||
|
|
"tableFrom": "tenants",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"tenants_property_id_properties_id_fk": {
|
||
|
|
"name": "tenants_property_id_properties_id_fk",
|
||
|
|
"tableFrom": "tenants",
|
||
|
|
"tableTo": "properties",
|
||
|
|
"columnsFrom": [
|
||
|
|
"property_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"tenants_unit_id_units_id_fk": {
|
||
|
|
"name": "tenants_unit_id_units_id_fk",
|
||
|
|
"tableFrom": "tenants",
|
||
|
|
"tableTo": "units",
|
||
|
|
"columnsFrom": [
|
||
|
|
"unit_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "set null",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {
|
||
|
|
"tenants_portal_token_unique": {
|
||
|
|
"name": "tenants_portal_token_unique",
|
||
|
|
"nullsNotDistinct": false,
|
||
|
|
"columns": [
|
||
|
|
"portal_token"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.units": {
|
||
|
|
"name": "units",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"property_id": {
|
||
|
|
"name": "property_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"unit_number": {
|
||
|
|
"name": "unit_number",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"bedrooms": {
|
||
|
|
"name": "bedrooms",
|
||
|
|
"type": "integer",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": 1
|
||
|
|
},
|
||
|
|
"bathrooms": {
|
||
|
|
"name": "bathrooms",
|
||
|
|
"type": "numeric(3, 1)",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "1"
|
||
|
|
},
|
||
|
|
"sq_ft": {
|
||
|
|
"name": "sq_ft",
|
||
|
|
"type": "integer",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"rent_amount": {
|
||
|
|
"name": "rent_amount",
|
||
|
|
"type": "numeric(10, 2)",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"status": {
|
||
|
|
"name": "status",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'vacant'"
|
||
|
|
},
|
||
|
|
"current_tenant_id": {
|
||
|
|
"name": "current_tenant_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"notes": {
|
||
|
|
"name": "notes",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
},
|
||
|
|
"updated_at": {
|
||
|
|
"name": "updated_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"units_property_id_properties_id_fk": {
|
||
|
|
"name": "units_property_id_properties_id_fk",
|
||
|
|
"tableFrom": "units",
|
||
|
|
"tableTo": "properties",
|
||
|
|
"columnsFrom": [
|
||
|
|
"property_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"units_user_id_profiles_id_fk": {
|
||
|
|
"name": "units_user_id_profiles_id_fk",
|
||
|
|
"tableFrom": "units",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.usage_events": {
|
||
|
|
"name": "usage_events",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"event_type": {
|
||
|
|
"name": "event_type",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"metadata": {
|
||
|
|
"name": "metadata",
|
||
|
|
"type": "jsonb",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "'{}'::jsonb"
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"usage_events_user_id_profiles_id_fk": {
|
||
|
|
"name": "usage_events_user_id_profiles_id_fk",
|
||
|
|
"tableFrom": "usage_events",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.user": {
|
||
|
|
"name": "user",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"name": {
|
||
|
|
"name": "name",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"email": {
|
||
|
|
"name": "email",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"email_verified": {
|
||
|
|
"name": "email_verified",
|
||
|
|
"type": "boolean",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": false
|
||
|
|
},
|
||
|
|
"image": {
|
||
|
|
"name": "image",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"role": {
|
||
|
|
"name": "role",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false,
|
||
|
|
"default": "'user'"
|
||
|
|
},
|
||
|
|
"banned": {
|
||
|
|
"name": "banned",
|
||
|
|
"type": "boolean",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false,
|
||
|
|
"default": false
|
||
|
|
},
|
||
|
|
"ban_reason": {
|
||
|
|
"name": "ban_reason",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"ban_expires": {
|
||
|
|
"name": "ban_expires",
|
||
|
|
"type": "timestamp",
|
||
|
|
"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": {
|
||
|
|
"user_email_unique": {
|
||
|
|
"name": "user_email_unique",
|
||
|
|
"nullsNotDistinct": false,
|
||
|
|
"columns": [
|
||
|
|
"email"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.vendors": {
|
||
|
|
"name": "vendors",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "gen_random_uuid()"
|
||
|
|
},
|
||
|
|
"user_id": {
|
||
|
|
"name": "user_id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"property_id": {
|
||
|
|
"name": "property_id",
|
||
|
|
"type": "uuid",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"name": {
|
||
|
|
"name": "name",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"trade": {
|
||
|
|
"name": "trade",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"phone": {
|
||
|
|
"name": "phone",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"email": {
|
||
|
|
"name": "email",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"notes": {
|
||
|
|
"name": "notes",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": false
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"name": "created_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
},
|
||
|
|
"updated_at": {
|
||
|
|
"name": "updated_at",
|
||
|
|
"type": "timestamp with time zone",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true,
|
||
|
|
"default": "now()"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"indexes": {},
|
||
|
|
"foreignKeys": {
|
||
|
|
"vendors_user_id_profiles_id_fk": {
|
||
|
|
"name": "vendors_user_id_profiles_id_fk",
|
||
|
|
"tableFrom": "vendors",
|
||
|
|
"tableTo": "profiles",
|
||
|
|
"columnsFrom": [
|
||
|
|
"user_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "cascade",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
},
|
||
|
|
"vendors_property_id_properties_id_fk": {
|
||
|
|
"name": "vendors_property_id_properties_id_fk",
|
||
|
|
"tableFrom": "vendors",
|
||
|
|
"tableTo": "properties",
|
||
|
|
"columnsFrom": [
|
||
|
|
"property_id"
|
||
|
|
],
|
||
|
|
"columnsTo": [
|
||
|
|
"id"
|
||
|
|
],
|
||
|
|
"onDelete": "set null",
|
||
|
|
"onUpdate": "no action"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"compositePrimaryKeys": {},
|
||
|
|
"uniqueConstraints": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
},
|
||
|
|
"public.verification": {
|
||
|
|
"name": "verification",
|
||
|
|
"schema": "",
|
||
|
|
"columns": {
|
||
|
|
"id": {
|
||
|
|
"name": "id",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": true,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"identifier": {
|
||
|
|
"name": "identifier",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"value": {
|
||
|
|
"name": "value",
|
||
|
|
"type": "text",
|
||
|
|
"primaryKey": false,
|
||
|
|
"notNull": true
|
||
|
|
},
|
||
|
|
"expires_at": {
|
||
|
|
"name": "expires_at",
|
||
|
|
"type": "timestamp",
|
||
|
|
"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": {},
|
||
|
|
"policies": {},
|
||
|
|
"checkConstraints": {},
|
||
|
|
"isRLSEnabled": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"enums": {},
|
||
|
|
"schemas": {},
|
||
|
|
"sequences": {},
|
||
|
|
"roles": {},
|
||
|
|
"policies": {},
|
||
|
|
"views": {},
|
||
|
|
"_meta": {
|
||
|
|
"columns": {},
|
||
|
|
"schemas": {},
|
||
|
|
"tables": {}
|
||
|
|
}
|
||
|
|
}
|