diff --git a/README.md b/README.md
index 91c6627a3..a9fc8a453 100644
--- a/README.md
+++ b/README.md
@@ -275,6 +275,26 @@ STRIPE_WEBHOOK_SECRET=
STRIPE_SECRET_KEY=
```
+### Database Webhooks
+
+Finally, you need to set a secret `SUPABASE_DB_WEBHOOK_SECRET` that your server and your Supabase instance will share in order to authenticate the requests.
+
+```
+SUPABASE_DB_WEBHOOK_SECRET=**************************************************
+```
+
+Make it a strong secret key - and make sure to keep it secret!
+
+Now, you need to deploy the Supabase DB webhooks to your Supabase instance.
+
+Please copy the webhooks (written with Postgres SQL) from apps/web/supabase/seed.sql and make sure to replicate them to the Supabase instance.
+
+Make sure to add the following header `X-Supabase-Webhook-Secret` with the value of the `SUPABASE_DB_WEBHOOK_SECRET` to the request.
+
+In this way - you server will be able to authenticate the request and be sure it's coming from your Supabase instance.
+
+As endpoint, remember to use the `/api/db/webhook` endpoint. If your APP url is `https://myapp.vercel.app`, the endpoint will be `https://myapp.vercel.app/api/db/webhook`.
+
## Deploying to Vercel
Deploying to Vercel is straightforward. You can deploy the application using the Vercel CLI or the Vercel dashboard.
diff --git a/apps/web/app/(marketing)/page.tsx b/apps/web/app/(marketing)/page.tsx
index d0dd8a90a..3e53b48ff 100644
--- a/apps/web/app/(marketing)/page.tsx
+++ b/apps/web/app/(marketing)/page.tsx
@@ -276,7 +276,7 @@ function HeroTitle({ children }: React.PropsWithChildren) {
return (
{children}
diff --git a/apps/web/app/api/billing/webhook/route.ts b/apps/web/app/api/billing/webhook/route.ts
index 566ac3774..1657b7bc3 100644
--- a/apps/web/app/api/billing/webhook/route.ts
+++ b/apps/web/app/api/billing/webhook/route.ts
@@ -16,10 +16,7 @@ export async function POST(request: Request) {
provider,
};
- logger.info(
- ctx,
- `Received billing webhook. Processing...`,
- );
+ logger.info(ctx, `Received billing webhook. Processing...`);
const supabaseClientProvider = () =>
getSupabaseRouteHandlerClient({ admin: true });
@@ -33,10 +30,7 @@ export async function POST(request: Request) {
try {
await service.handleWebhookEvent(request);
- logger.info(
- ctx,
- `Successfully processed billing webhook`,
- );
+ logger.info(ctx, `Successfully processed billing webhook`);
return new Response('OK', { status: 200 });
} catch (error) {
diff --git a/apps/web/lib/database.types.ts b/apps/web/lib/database.types.ts
index a5e720bac..edc5bc18c 100644
--- a/apps/web/lib/database.types.ts
+++ b/apps/web/lib/database.types.ts
@@ -4,1336 +4,1335 @@ export type Json =
| boolean
| null
| { [key: string]: Json | undefined }
- | Json[]
+ | Json[];
export type Database = {
graphql_public: {
Tables: {
- [_ in never]: never
- }
+ [_ in never]: never;
+ };
Views: {
- [_ in never]: never
- }
+ [_ in never]: never;
+ };
Functions: {
graphql: {
Args: {
- operationName?: string
- query?: string
- variables?: Json
- extensions?: Json
- }
- Returns: Json
- }
- }
+ operationName?: string;
+ query?: string;
+ variables?: Json;
+ extensions?: Json;
+ };
+ Returns: Json;
+ };
+ };
Enums: {
- [_ in never]: never
- }
+ [_ in never]: never;
+ };
CompositeTypes: {
- [_ in never]: never
- }
- }
+ [_ in never]: never;
+ };
+ };
public: {
Tables: {
account_roles: {
Row: {
- account_id: string
- id: number
- role: string
- }
+ account_id: string;
+ id: number;
+ role: string;
+ };
Insert: {
- account_id: string
- id?: number
- role: string
- }
+ account_id: string;
+ id?: number;
+ role: string;
+ };
Update: {
- account_id?: string
- id?: number
- role?: string
- }
+ account_id?: string;
+ id?: number;
+ role?: string;
+ };
Relationships: [
{
- foreignKeyName: "account_roles_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'account_roles_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "account_roles_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_account_workspace"
- referencedColumns: ["id"]
+ foreignKeyName: 'account_roles_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_account_workspace';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "account_roles_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'account_roles_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "account_roles_role_fkey"
- columns: ["role"]
- isOneToOne: false
- referencedRelation: "roles"
- referencedColumns: ["name"]
+ foreignKeyName: 'account_roles_role_fkey';
+ columns: ['role'];
+ isOneToOne: false;
+ referencedRelation: 'roles';
+ referencedColumns: ['name'];
},
- ]
- }
+ ];
+ };
accounts: {
Row: {
- created_at: string | null
- created_by: string | null
- email: string | null
- id: string
- is_personal_account: boolean
- name: string
- picture_url: string | null
- primary_owner_user_id: string
- public_data: Json
- slug: string | null
- updated_at: string | null
- updated_by: string | null
- }
+ created_at: string | null;
+ created_by: string | null;
+ email: string | null;
+ id: string;
+ is_personal_account: boolean;
+ name: string;
+ picture_url: string | null;
+ primary_owner_user_id: string;
+ public_data: Json;
+ slug: string | null;
+ updated_at: string | null;
+ updated_by: string | null;
+ };
Insert: {
- created_at?: string | null
- created_by?: string | null
- email?: string | null
- id?: string
- is_personal_account?: boolean
- name: string
- picture_url?: string | null
- primary_owner_user_id?: string
- public_data?: Json
- slug?: string | null
- updated_at?: string | null
- updated_by?: string | null
- }
+ created_at?: string | null;
+ created_by?: string | null;
+ email?: string | null;
+ id?: string;
+ is_personal_account?: boolean;
+ name: string;
+ picture_url?: string | null;
+ primary_owner_user_id?: string;
+ public_data?: Json;
+ slug?: string | null;
+ updated_at?: string | null;
+ updated_by?: string | null;
+ };
Update: {
- created_at?: string | null
- created_by?: string | null
- email?: string | null
- id?: string
- is_personal_account?: boolean
- name?: string
- picture_url?: string | null
- primary_owner_user_id?: string
- public_data?: Json
- slug?: string | null
- updated_at?: string | null
- updated_by?: string | null
- }
+ created_at?: string | null;
+ created_by?: string | null;
+ email?: string | null;
+ id?: string;
+ is_personal_account?: boolean;
+ name?: string;
+ picture_url?: string | null;
+ primary_owner_user_id?: string;
+ public_data?: Json;
+ slug?: string | null;
+ updated_at?: string | null;
+ updated_by?: string | null;
+ };
Relationships: [
{
- foreignKeyName: "accounts_created_by_fkey"
- columns: ["created_by"]
- isOneToOne: false
- referencedRelation: "users"
- referencedColumns: ["id"]
+ foreignKeyName: 'accounts_created_by_fkey';
+ columns: ['created_by'];
+ isOneToOne: false;
+ referencedRelation: 'users';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "accounts_primary_owner_user_id_fkey"
- columns: ["primary_owner_user_id"]
- isOneToOne: false
- referencedRelation: "users"
- referencedColumns: ["id"]
+ foreignKeyName: 'accounts_primary_owner_user_id_fkey';
+ columns: ['primary_owner_user_id'];
+ isOneToOne: false;
+ referencedRelation: 'users';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "accounts_updated_by_fkey"
- columns: ["updated_by"]
- isOneToOne: false
- referencedRelation: "users"
- referencedColumns: ["id"]
+ foreignKeyName: 'accounts_updated_by_fkey';
+ columns: ['updated_by'];
+ isOneToOne: false;
+ referencedRelation: 'users';
+ referencedColumns: ['id'];
},
- ]
- }
+ ];
+ };
accounts_memberships: {
Row: {
- account_id: string
- account_role: string
- created_at: string
- created_by: string | null
- updated_at: string
- updated_by: string | null
- user_id: string
- }
+ account_id: string;
+ account_role: string;
+ created_at: string;
+ created_by: string | null;
+ updated_at: string;
+ updated_by: string | null;
+ user_id: string;
+ };
Insert: {
- account_id: string
- account_role: string
- created_at?: string
- created_by?: string | null
- updated_at?: string
- updated_by?: string | null
- user_id: string
- }
+ account_id: string;
+ account_role: string;
+ created_at?: string;
+ created_by?: string | null;
+ updated_at?: string;
+ updated_by?: string | null;
+ user_id: string;
+ };
Update: {
- account_id?: string
- account_role?: string
- created_at?: string
- created_by?: string | null
- updated_at?: string
- updated_by?: string | null
- user_id?: string
- }
+ account_id?: string;
+ account_role?: string;
+ created_at?: string;
+ created_by?: string | null;
+ updated_at?: string;
+ updated_by?: string | null;
+ user_id?: string;
+ };
Relationships: [
{
- foreignKeyName: "accounts_memberships_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'accounts_memberships_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "accounts_memberships_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_account_workspace"
- referencedColumns: ["id"]
+ foreignKeyName: 'accounts_memberships_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_account_workspace';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "accounts_memberships_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'accounts_memberships_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "accounts_memberships_account_role_fkey"
- columns: ["account_role"]
- isOneToOne: false
- referencedRelation: "roles"
- referencedColumns: ["name"]
+ foreignKeyName: 'accounts_memberships_account_role_fkey';
+ columns: ['account_role'];
+ isOneToOne: false;
+ referencedRelation: 'roles';
+ referencedColumns: ['name'];
},
{
- foreignKeyName: "accounts_memberships_created_by_fkey"
- columns: ["created_by"]
- isOneToOne: false
- referencedRelation: "users"
- referencedColumns: ["id"]
+ foreignKeyName: 'accounts_memberships_created_by_fkey';
+ columns: ['created_by'];
+ isOneToOne: false;
+ referencedRelation: 'users';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "accounts_memberships_updated_by_fkey"
- columns: ["updated_by"]
- isOneToOne: false
- referencedRelation: "users"
- referencedColumns: ["id"]
+ foreignKeyName: 'accounts_memberships_updated_by_fkey';
+ columns: ['updated_by'];
+ isOneToOne: false;
+ referencedRelation: 'users';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "accounts_memberships_user_id_fkey"
- columns: ["user_id"]
- isOneToOne: false
- referencedRelation: "users"
- referencedColumns: ["id"]
+ foreignKeyName: 'accounts_memberships_user_id_fkey';
+ columns: ['user_id'];
+ isOneToOne: false;
+ referencedRelation: 'users';
+ referencedColumns: ['id'];
},
- ]
- }
+ ];
+ };
billing_customers: {
Row: {
- account_id: string
- customer_id: string
- email: string | null
- id: number
- provider: Database["public"]["Enums"]["billing_provider"]
- }
+ account_id: string;
+ customer_id: string;
+ email: string | null;
+ id: number;
+ provider: Database['public']['Enums']['billing_provider'];
+ };
Insert: {
- account_id: string
- customer_id: string
- email?: string | null
- id?: number
- provider: Database["public"]["Enums"]["billing_provider"]
- }
+ account_id: string;
+ customer_id: string;
+ email?: string | null;
+ id?: number;
+ provider: Database['public']['Enums']['billing_provider'];
+ };
Update: {
- account_id?: string
- customer_id?: string
- email?: string | null
- id?: number
- provider?: Database["public"]["Enums"]["billing_provider"]
- }
+ account_id?: string;
+ customer_id?: string;
+ email?: string | null;
+ id?: number;
+ provider?: Database['public']['Enums']['billing_provider'];
+ };
Relationships: [
{
- foreignKeyName: "billing_customers_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'billing_customers_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "billing_customers_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_account_workspace"
- referencedColumns: ["id"]
+ foreignKeyName: 'billing_customers_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_account_workspace';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "billing_customers_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'billing_customers_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_accounts';
+ referencedColumns: ['id'];
},
- ]
- }
+ ];
+ };
config: {
Row: {
- billing_provider: Database["public"]["Enums"]["billing_provider"]
- enable_account_billing: boolean
- enable_team_account_billing: boolean
- enable_team_accounts: boolean
- }
+ billing_provider: Database['public']['Enums']['billing_provider'];
+ enable_account_billing: boolean;
+ enable_team_account_billing: boolean;
+ enable_team_accounts: boolean;
+ };
Insert: {
- billing_provider?: Database["public"]["Enums"]["billing_provider"]
- enable_account_billing?: boolean
- enable_team_account_billing?: boolean
- enable_team_accounts?: boolean
- }
+ billing_provider?: Database['public']['Enums']['billing_provider'];
+ enable_account_billing?: boolean;
+ enable_team_account_billing?: boolean;
+ enable_team_accounts?: boolean;
+ };
Update: {
- billing_provider?: Database["public"]["Enums"]["billing_provider"]
- enable_account_billing?: boolean
- enable_team_account_billing?: boolean
- enable_team_accounts?: boolean
- }
- Relationships: []
- }
+ billing_provider?: Database['public']['Enums']['billing_provider'];
+ enable_account_billing?: boolean;
+ enable_team_account_billing?: boolean;
+ enable_team_accounts?: boolean;
+ };
+ Relationships: [];
+ };
invitations: {
Row: {
- account_id: string
- created_at: string
- email: string
- expires_at: string
- id: number
- invite_token: string
- invited_by: string
- role: string
- updated_at: string
- }
+ account_id: string;
+ created_at: string;
+ email: string;
+ expires_at: string;
+ id: number;
+ invite_token: string;
+ invited_by: string;
+ role: string;
+ updated_at: string;
+ };
Insert: {
- account_id: string
- created_at?: string
- email: string
- expires_at?: string
- id?: number
- invite_token: string
- invited_by: string
- role: string
- updated_at?: string
- }
+ account_id: string;
+ created_at?: string;
+ email: string;
+ expires_at?: string;
+ id?: number;
+ invite_token: string;
+ invited_by: string;
+ role: string;
+ updated_at?: string;
+ };
Update: {
- account_id?: string
- created_at?: string
- email?: string
- expires_at?: string
- id?: number
- invite_token?: string
- invited_by?: string
- role?: string
- updated_at?: string
- }
+ account_id?: string;
+ created_at?: string;
+ email?: string;
+ expires_at?: string;
+ id?: number;
+ invite_token?: string;
+ invited_by?: string;
+ role?: string;
+ updated_at?: string;
+ };
Relationships: [
{
- foreignKeyName: "invitations_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'invitations_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "invitations_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_account_workspace"
- referencedColumns: ["id"]
+ foreignKeyName: 'invitations_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_account_workspace';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "invitations_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'invitations_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "invitations_invited_by_fkey"
- columns: ["invited_by"]
- isOneToOne: false
- referencedRelation: "users"
- referencedColumns: ["id"]
+ foreignKeyName: 'invitations_invited_by_fkey';
+ columns: ['invited_by'];
+ isOneToOne: false;
+ referencedRelation: 'users';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "invitations_role_fkey"
- columns: ["role"]
- isOneToOne: false
- referencedRelation: "roles"
- referencedColumns: ["name"]
+ foreignKeyName: 'invitations_role_fkey';
+ columns: ['role'];
+ isOneToOne: false;
+ referencedRelation: 'roles';
+ referencedColumns: ['name'];
},
- ]
- }
+ ];
+ };
order_items: {
Row: {
- created_at: string
- order_id: string
- price_amount: number | null
- product_id: string
- quantity: number
- updated_at: string
- variant_id: string
- }
+ created_at: string;
+ order_id: string;
+ price_amount: number | null;
+ product_id: string;
+ quantity: number;
+ updated_at: string;
+ variant_id: string;
+ };
Insert: {
- created_at?: string
- order_id: string
- price_amount?: number | null
- product_id: string
- quantity?: number
- updated_at?: string
- variant_id: string
- }
+ created_at?: string;
+ order_id: string;
+ price_amount?: number | null;
+ product_id: string;
+ quantity?: number;
+ updated_at?: string;
+ variant_id: string;
+ };
Update: {
- created_at?: string
- order_id?: string
- price_amount?: number | null
- product_id?: string
- quantity?: number
- updated_at?: string
- variant_id?: string
- }
+ created_at?: string;
+ order_id?: string;
+ price_amount?: number | null;
+ product_id?: string;
+ quantity?: number;
+ updated_at?: string;
+ variant_id?: string;
+ };
Relationships: [
{
- foreignKeyName: "order_items_order_id_fkey"
- columns: ["order_id"]
- isOneToOne: false
- referencedRelation: "orders"
- referencedColumns: ["id"]
+ foreignKeyName: 'order_items_order_id_fkey';
+ columns: ['order_id'];
+ isOneToOne: false;
+ referencedRelation: 'orders';
+ referencedColumns: ['id'];
},
- ]
- }
+ ];
+ };
orders: {
Row: {
- account_id: string
- billing_customer_id: number
- billing_provider: Database["public"]["Enums"]["billing_provider"]
- created_at: string
- currency: string
- id: string
- status: Database["public"]["Enums"]["payment_status"]
- total_amount: number
- updated_at: string
- }
+ account_id: string;
+ billing_customer_id: number;
+ billing_provider: Database['public']['Enums']['billing_provider'];
+ created_at: string;
+ currency: string;
+ id: string;
+ status: Database['public']['Enums']['payment_status'];
+ total_amount: number;
+ updated_at: string;
+ };
Insert: {
- account_id: string
- billing_customer_id: number
- billing_provider: Database["public"]["Enums"]["billing_provider"]
- created_at?: string
- currency: string
- id: string
- status: Database["public"]["Enums"]["payment_status"]
- total_amount: number
- updated_at?: string
- }
+ account_id: string;
+ billing_customer_id: number;
+ billing_provider: Database['public']['Enums']['billing_provider'];
+ created_at?: string;
+ currency: string;
+ id: string;
+ status: Database['public']['Enums']['payment_status'];
+ total_amount: number;
+ updated_at?: string;
+ };
Update: {
- account_id?: string
- billing_customer_id?: number
- billing_provider?: Database["public"]["Enums"]["billing_provider"]
- created_at?: string
- currency?: string
- id?: string
- status?: Database["public"]["Enums"]["payment_status"]
- total_amount?: number
- updated_at?: string
- }
+ account_id?: string;
+ billing_customer_id?: number;
+ billing_provider?: Database['public']['Enums']['billing_provider'];
+ created_at?: string;
+ currency?: string;
+ id?: string;
+ status?: Database['public']['Enums']['payment_status'];
+ total_amount?: number;
+ updated_at?: string;
+ };
Relationships: [
{
- foreignKeyName: "orders_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'orders_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "orders_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_account_workspace"
- referencedColumns: ["id"]
+ foreignKeyName: 'orders_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_account_workspace';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "orders_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'orders_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "orders_billing_customer_id_fkey"
- columns: ["billing_customer_id"]
- isOneToOne: false
- referencedRelation: "billing_customers"
- referencedColumns: ["id"]
+ foreignKeyName: 'orders_billing_customer_id_fkey';
+ columns: ['billing_customer_id'];
+ isOneToOne: false;
+ referencedRelation: 'billing_customers';
+ referencedColumns: ['id'];
},
- ]
- }
+ ];
+ };
role_permissions: {
Row: {
- id: number
- permission: Database["public"]["Enums"]["app_permissions"]
- role: string
- }
+ id: number;
+ permission: Database['public']['Enums']['app_permissions'];
+ role: string;
+ };
Insert: {
- id?: number
- permission: Database["public"]["Enums"]["app_permissions"]
- role: string
- }
+ id?: number;
+ permission: Database['public']['Enums']['app_permissions'];
+ role: string;
+ };
Update: {
- id?: number
- permission?: Database["public"]["Enums"]["app_permissions"]
- role?: string
- }
+ id?: number;
+ permission?: Database['public']['Enums']['app_permissions'];
+ role?: string;
+ };
Relationships: [
{
- foreignKeyName: "role_permissions_role_fkey"
- columns: ["role"]
- isOneToOne: false
- referencedRelation: "roles"
- referencedColumns: ["name"]
+ foreignKeyName: 'role_permissions_role_fkey';
+ columns: ['role'];
+ isOneToOne: false;
+ referencedRelation: 'roles';
+ referencedColumns: ['name'];
},
- ]
- }
+ ];
+ };
roles: {
Row: {
- account_id: string | null
- hierarchy_level: number
- name: string
- }
+ account_id: string | null;
+ hierarchy_level: number;
+ name: string;
+ };
Insert: {
- account_id?: string | null
- hierarchy_level: number
- name: string
- }
+ account_id?: string | null;
+ hierarchy_level: number;
+ name: string;
+ };
Update: {
- account_id?: string | null
- hierarchy_level?: number
- name?: string
- }
+ account_id?: string | null;
+ hierarchy_level?: number;
+ name?: string;
+ };
Relationships: [
{
- foreignKeyName: "roles_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'roles_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "roles_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_account_workspace"
- referencedColumns: ["id"]
+ foreignKeyName: 'roles_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_account_workspace';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "roles_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'roles_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_accounts';
+ referencedColumns: ['id'];
},
- ]
- }
+ ];
+ };
subscription_items: {
Row: {
- created_at: string
- interval: string
- interval_count: number
- price_amount: number | null
- product_id: string
- quantity: number
- subscription_id: string
- type: Database["public"]["Enums"]["subscription_item_type"]
- updated_at: string
- variant_id: string
- }
+ created_at: string;
+ interval: string;
+ interval_count: number;
+ price_amount: number | null;
+ product_id: string;
+ quantity: number;
+ subscription_id: string;
+ type: Database['public']['Enums']['subscription_item_type'];
+ updated_at: string;
+ variant_id: string;
+ };
Insert: {
- created_at?: string
- interval: string
- interval_count: number
- price_amount?: number | null
- product_id: string
- quantity?: number
- subscription_id: string
- type: Database["public"]["Enums"]["subscription_item_type"]
- updated_at?: string
- variant_id: string
- }
+ created_at?: string;
+ interval: string;
+ interval_count: number;
+ price_amount?: number | null;
+ product_id: string;
+ quantity?: number;
+ subscription_id: string;
+ type: Database['public']['Enums']['subscription_item_type'];
+ updated_at?: string;
+ variant_id: string;
+ };
Update: {
- created_at?: string
- interval?: string
- interval_count?: number
- price_amount?: number | null
- product_id?: string
- quantity?: number
- subscription_id?: string
- type?: Database["public"]["Enums"]["subscription_item_type"]
- updated_at?: string
- variant_id?: string
- }
+ created_at?: string;
+ interval?: string;
+ interval_count?: number;
+ price_amount?: number | null;
+ product_id?: string;
+ quantity?: number;
+ subscription_id?: string;
+ type?: Database['public']['Enums']['subscription_item_type'];
+ updated_at?: string;
+ variant_id?: string;
+ };
Relationships: [
{
- foreignKeyName: "subscription_items_subscription_id_fkey"
- columns: ["subscription_id"]
- isOneToOne: false
- referencedRelation: "subscriptions"
- referencedColumns: ["id"]
+ foreignKeyName: 'subscription_items_subscription_id_fkey';
+ columns: ['subscription_id'];
+ isOneToOne: false;
+ referencedRelation: 'subscriptions';
+ referencedColumns: ['id'];
},
- ]
- }
+ ];
+ };
subscriptions: {
Row: {
- account_id: string
- active: boolean
- billing_customer_id: number
- billing_provider: Database["public"]["Enums"]["billing_provider"]
- cancel_at_period_end: boolean
- created_at: string
- currency: string
- id: string
- period_ends_at: string
- period_starts_at: string
- status: Database["public"]["Enums"]["subscription_status"]
- trial_ends_at: string | null
- trial_starts_at: string | null
- updated_at: string
- }
+ account_id: string;
+ active: boolean;
+ billing_customer_id: number;
+ billing_provider: Database['public']['Enums']['billing_provider'];
+ cancel_at_period_end: boolean;
+ created_at: string;
+ currency: string;
+ id: string;
+ period_ends_at: string;
+ period_starts_at: string;
+ status: Database['public']['Enums']['subscription_status'];
+ trial_ends_at: string | null;
+ trial_starts_at: string | null;
+ updated_at: string;
+ };
Insert: {
- account_id: string
- active: boolean
- billing_customer_id: number
- billing_provider: Database["public"]["Enums"]["billing_provider"]
- cancel_at_period_end: boolean
- created_at?: string
- currency: string
- id: string
- period_ends_at: string
- period_starts_at: string
- status: Database["public"]["Enums"]["subscription_status"]
- trial_ends_at?: string | null
- trial_starts_at?: string | null
- updated_at?: string
- }
+ account_id: string;
+ active: boolean;
+ billing_customer_id: number;
+ billing_provider: Database['public']['Enums']['billing_provider'];
+ cancel_at_period_end: boolean;
+ created_at?: string;
+ currency: string;
+ id: string;
+ period_ends_at: string;
+ period_starts_at: string;
+ status: Database['public']['Enums']['subscription_status'];
+ trial_ends_at?: string | null;
+ trial_starts_at?: string | null;
+ updated_at?: string;
+ };
Update: {
- account_id?: string
- active?: boolean
- billing_customer_id?: number
- billing_provider?: Database["public"]["Enums"]["billing_provider"]
- cancel_at_period_end?: boolean
- created_at?: string
- currency?: string
- id?: string
- period_ends_at?: string
- period_starts_at?: string
- status?: Database["public"]["Enums"]["subscription_status"]
- trial_ends_at?: string | null
- trial_starts_at?: string | null
- updated_at?: string
- }
+ account_id?: string;
+ active?: boolean;
+ billing_customer_id?: number;
+ billing_provider?: Database['public']['Enums']['billing_provider'];
+ cancel_at_period_end?: boolean;
+ created_at?: string;
+ currency?: string;
+ id?: string;
+ period_ends_at?: string;
+ period_starts_at?: string;
+ status?: Database['public']['Enums']['subscription_status'];
+ trial_ends_at?: string | null;
+ trial_starts_at?: string | null;
+ updated_at?: string;
+ };
Relationships: [
{
- foreignKeyName: "subscriptions_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'subscriptions_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "subscriptions_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_account_workspace"
- referencedColumns: ["id"]
+ foreignKeyName: 'subscriptions_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_account_workspace';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "subscriptions_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'subscriptions_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "subscriptions_billing_customer_id_fkey"
- columns: ["billing_customer_id"]
- isOneToOne: false
- referencedRelation: "billing_customers"
- referencedColumns: ["id"]
+ foreignKeyName: 'subscriptions_billing_customer_id_fkey';
+ columns: ['billing_customer_id'];
+ isOneToOne: false;
+ referencedRelation: 'billing_customers';
+ referencedColumns: ['id'];
},
- ]
- }
- }
+ ];
+ };
+ };
Views: {
user_account_workspace: {
Row: {
- id: string | null
- name: string | null
- picture_url: string | null
- public_data: Json | null
+ id: string | null;
+ name: string | null;
+ picture_url: string | null;
+ public_data: Json | null;
subscription_status:
- | Database["public"]["Enums"]["subscription_status"]
- | null
- }
- Relationships: []
- }
+ | Database['public']['Enums']['subscription_status']
+ | null;
+ };
+ Relationships: [];
+ };
user_accounts: {
Row: {
- id: string | null
- name: string | null
- picture_url: string | null
- role: string | null
- slug: string | null
- }
+ id: string | null;
+ name: string | null;
+ picture_url: string | null;
+ role: string | null;
+ slug: string | null;
+ };
Relationships: [
{
- foreignKeyName: "accounts_memberships_account_role_fkey"
- columns: ["role"]
- isOneToOne: false
- referencedRelation: "roles"
- referencedColumns: ["name"]
+ foreignKeyName: 'accounts_memberships_account_role_fkey';
+ columns: ['role'];
+ isOneToOne: false;
+ referencedRelation: 'roles';
+ referencedColumns: ['name'];
},
- ]
- }
- }
+ ];
+ };
+ };
Functions: {
accept_invitation: {
Args: {
- token: string
- user_id: string
- }
- Returns: string
- }
+ token: string;
+ user_id: string;
+ };
+ Returns: string;
+ };
add_invitations_to_account: {
Args: {
- account_slug: string
- invitations: Database["public"]["CompositeTypes"]["invitation"][]
- }
- Returns: Database["public"]["Tables"]["invitations"]["Row"][]
- }
+ account_slug: string;
+ invitations: Database['public']['CompositeTypes']['invitation'][];
+ };
+ Returns: Database['public']['Tables']['invitations']['Row'][];
+ };
create_invitation: {
Args: {
- account_id: string
- email: string
- role: string
- }
+ account_id: string;
+ email: string;
+ role: string;
+ };
Returns: {
- account_id: string
- created_at: string
- email: string
- expires_at: string
- id: number
- invite_token: string
- invited_by: string
- role: string
- updated_at: string
- }
- }
+ account_id: string;
+ created_at: string;
+ email: string;
+ expires_at: string;
+ id: number;
+ invite_token: string;
+ invited_by: string;
+ role: string;
+ updated_at: string;
+ };
+ };
create_team_account: {
Args: {
- account_name: string
- }
+ account_name: string;
+ };
Returns: {
- created_at: string | null
- created_by: string | null
- email: string | null
- id: string
- is_personal_account: boolean
- name: string
- picture_url: string | null
- primary_owner_user_id: string
- public_data: Json
- slug: string | null
- updated_at: string | null
- updated_by: string | null
- }
- }
+ created_at: string | null;
+ created_by: string | null;
+ email: string | null;
+ id: string;
+ is_personal_account: boolean;
+ name: string;
+ picture_url: string | null;
+ primary_owner_user_id: string;
+ public_data: Json;
+ slug: string | null;
+ updated_at: string | null;
+ updated_by: string | null;
+ };
+ };
get_account_invitations: {
Args: {
- account_slug: string
- }
+ account_slug: string;
+ };
Returns: {
- id: number
- email: string
- account_id: string
- invited_by: string
- role: string
- created_at: string
- updated_at: string
- expires_at: string
- inviter_name: string
- inviter_email: string
- }[]
- }
+ id: number;
+ email: string;
+ account_id: string;
+ invited_by: string;
+ role: string;
+ created_at: string;
+ updated_at: string;
+ expires_at: string;
+ inviter_name: string;
+ inviter_email: string;
+ }[];
+ };
get_account_members: {
Args: {
- account_slug: string
- }
+ account_slug: string;
+ };
Returns: {
- id: string
- user_id: string
- account_id: string
- role: string
- role_hierarchy_level: number
- primary_owner_user_id: string
- name: string
- email: string
- picture_url: string
- created_at: string
- updated_at: string
- }[]
- }
+ id: string;
+ user_id: string;
+ account_id: string;
+ role: string;
+ role_hierarchy_level: number;
+ primary_owner_user_id: string;
+ name: string;
+ email: string;
+ picture_url: string;
+ created_at: string;
+ updated_at: string;
+ }[];
+ };
get_config: {
- Args: Record
- Returns: Json
- }
+ Args: Record;
+ Returns: Json;
+ };
has_more_elevated_role: {
Args: {
- target_user_id: string
- target_account_id: string
- role_name: string
- }
- Returns: boolean
- }
+ target_user_id: string;
+ target_account_id: string;
+ role_name: string;
+ };
+ Returns: boolean;
+ };
has_permission: {
Args: {
- user_id: string
- account_id: string
- permission_name: Database["public"]["Enums"]["app_permissions"]
- }
- Returns: boolean
- }
+ user_id: string;
+ account_id: string;
+ permission_name: Database['public']['Enums']['app_permissions'];
+ };
+ Returns: boolean;
+ };
has_role_on_account: {
Args: {
- account_id: string
- account_role?: string
- }
- Returns: boolean
- }
+ account_id: string;
+ account_role?: string;
+ };
+ Returns: boolean;
+ };
is_account_owner: {
Args: {
- account_id: string
- }
- Returns: boolean
- }
+ account_id: string;
+ };
+ Returns: boolean;
+ };
is_set: {
Args: {
- field_name: string
- }
- Returns: boolean
- }
+ field_name: string;
+ };
+ Returns: boolean;
+ };
is_team_member: {
Args: {
- account_id: string
- user_id: string
- }
- Returns: boolean
- }
+ account_id: string;
+ user_id: string;
+ };
+ Returns: boolean;
+ };
team_account_workspace: {
Args: {
- account_slug: string
- }
+ account_slug: string;
+ };
Returns: {
- id: string
- name: string
- picture_url: string
- slug: string
- role: string
- role_hierarchy_level: number
- primary_owner_user_id: string
- subscription_status: Database["public"]["Enums"]["subscription_status"]
- permissions: Database["public"]["Enums"]["app_permissions"][]
- }[]
- }
+ id: string;
+ name: string;
+ picture_url: string;
+ slug: string;
+ role: string;
+ role_hierarchy_level: number;
+ primary_owner_user_id: string;
+ subscription_status: Database['public']['Enums']['subscription_status'];
+ permissions: Database['public']['Enums']['app_permissions'][];
+ }[];
+ };
transfer_team_account_ownership: {
Args: {
- target_account_id: string
- new_owner_id: string
- }
- Returns: undefined
- }
+ target_account_id: string;
+ new_owner_id: string;
+ };
+ Returns: undefined;
+ };
unaccent: {
Args: {
- "": string
- }
- Returns: string
- }
+ '': string;
+ };
+ Returns: string;
+ };
unaccent_init: {
Args: {
- "": unknown
- }
- Returns: unknown
- }
+ '': unknown;
+ };
+ Returns: unknown;
+ };
upsert_order: {
Args: {
- target_account_id: string
- target_customer_id: string
- target_order_id: string
- status: Database["public"]["Enums"]["payment_status"]
- billing_provider: Database["public"]["Enums"]["billing_provider"]
- total_amount: number
- currency: string
- line_items: Json
- }
+ target_account_id: string;
+ target_customer_id: string;
+ target_order_id: string;
+ status: Database['public']['Enums']['payment_status'];
+ billing_provider: Database['public']['Enums']['billing_provider'];
+ total_amount: number;
+ currency: string;
+ line_items: Json;
+ };
Returns: {
- account_id: string
- billing_customer_id: number
- billing_provider: Database["public"]["Enums"]["billing_provider"]
- created_at: string
- currency: string
- id: string
- status: Database["public"]["Enums"]["payment_status"]
- total_amount: number
- updated_at: string
- }
- }
+ account_id: string;
+ billing_customer_id: number;
+ billing_provider: Database['public']['Enums']['billing_provider'];
+ created_at: string;
+ currency: string;
+ id: string;
+ status: Database['public']['Enums']['payment_status'];
+ total_amount: number;
+ updated_at: string;
+ };
+ };
upsert_subscription: {
Args: {
- target_account_id: string
- target_customer_id: string
- target_subscription_id: string
- active: boolean
- status: Database["public"]["Enums"]["subscription_status"]
- billing_provider: Database["public"]["Enums"]["billing_provider"]
- cancel_at_period_end: boolean
- currency: string
- period_starts_at: string
- period_ends_at: string
- line_items: Json
- trial_starts_at?: string
- trial_ends_at?: string
- }
+ target_account_id: string;
+ target_customer_id: string;
+ target_subscription_id: string;
+ active: boolean;
+ status: Database['public']['Enums']['subscription_status'];
+ billing_provider: Database['public']['Enums']['billing_provider'];
+ cancel_at_period_end: boolean;
+ currency: string;
+ period_starts_at: string;
+ period_ends_at: string;
+ line_items: Json;
+ trial_starts_at?: string;
+ trial_ends_at?: string;
+ };
Returns: {
- account_id: string
- active: boolean
- billing_customer_id: number
- billing_provider: Database["public"]["Enums"]["billing_provider"]
- cancel_at_period_end: boolean
- created_at: string
- currency: string
- id: string
- period_ends_at: string
- period_starts_at: string
- status: Database["public"]["Enums"]["subscription_status"]
- trial_ends_at: string | null
- trial_starts_at: string | null
- updated_at: string
- }
- }
- }
+ account_id: string;
+ active: boolean;
+ billing_customer_id: number;
+ billing_provider: Database['public']['Enums']['billing_provider'];
+ cancel_at_period_end: boolean;
+ created_at: string;
+ currency: string;
+ id: string;
+ period_ends_at: string;
+ period_starts_at: string;
+ status: Database['public']['Enums']['subscription_status'];
+ trial_ends_at: string | null;
+ trial_starts_at: string | null;
+ updated_at: string;
+ };
+ };
+ };
Enums: {
app_permissions:
- | "roles.manage"
- | "billing.manage"
- | "settings.manage"
- | "members.manage"
- | "invites.manage"
- billing_provider: "stripe" | "lemon-squeezy" | "paddle"
- payment_status: "pending" | "succeeded" | "failed"
- subscription_item_type: "flat" | "per_seat" | "metered"
+ | 'roles.manage'
+ | 'billing.manage'
+ | 'settings.manage'
+ | 'members.manage'
+ | 'invites.manage';
+ billing_provider: 'stripe' | 'lemon-squeezy' | 'paddle';
+ payment_status: 'pending' | 'succeeded' | 'failed';
+ subscription_item_type: 'flat' | 'per_seat' | 'metered';
subscription_status:
- | "active"
- | "trialing"
- | "past_due"
- | "canceled"
- | "unpaid"
- | "incomplete"
- | "incomplete_expired"
- | "paused"
- }
+ | 'active'
+ | 'trialing'
+ | 'past_due'
+ | 'canceled'
+ | 'unpaid'
+ | 'incomplete'
+ | 'incomplete_expired'
+ | 'paused';
+ };
CompositeTypes: {
invitation: {
- email: string | null
- role: string | null
- }
- }
- }
+ email: string | null;
+ role: string | null;
+ };
+ };
+ };
storage: {
Tables: {
buckets: {
Row: {
- allowed_mime_types: string[] | null
- avif_autodetection: boolean | null
- created_at: string | null
- file_size_limit: number | null
- id: string
- name: string
- owner: string | null
- owner_id: string | null
- public: boolean | null
- updated_at: string | null
- }
+ allowed_mime_types: string[] | null;
+ avif_autodetection: boolean | null;
+ created_at: string | null;
+ file_size_limit: number | null;
+ id: string;
+ name: string;
+ owner: string | null;
+ owner_id: string | null;
+ public: boolean | null;
+ updated_at: string | null;
+ };
Insert: {
- allowed_mime_types?: string[] | null
- avif_autodetection?: boolean | null
- created_at?: string | null
- file_size_limit?: number | null
- id: string
- name: string
- owner?: string | null
- owner_id?: string | null
- public?: boolean | null
- updated_at?: string | null
- }
+ allowed_mime_types?: string[] | null;
+ avif_autodetection?: boolean | null;
+ created_at?: string | null;
+ file_size_limit?: number | null;
+ id: string;
+ name: string;
+ owner?: string | null;
+ owner_id?: string | null;
+ public?: boolean | null;
+ updated_at?: string | null;
+ };
Update: {
- allowed_mime_types?: string[] | null
- avif_autodetection?: boolean | null
- created_at?: string | null
- file_size_limit?: number | null
- id?: string
- name?: string
- owner?: string | null
- owner_id?: string | null
- public?: boolean | null
- updated_at?: string | null
- }
- Relationships: []
- }
+ allowed_mime_types?: string[] | null;
+ avif_autodetection?: boolean | null;
+ created_at?: string | null;
+ file_size_limit?: number | null;
+ id?: string;
+ name?: string;
+ owner?: string | null;
+ owner_id?: string | null;
+ public?: boolean | null;
+ updated_at?: string | null;
+ };
+ Relationships: [];
+ };
migrations: {
Row: {
- executed_at: string | null
- hash: string
- id: number
- name: string
- }
+ executed_at: string | null;
+ hash: string;
+ id: number;
+ name: string;
+ };
Insert: {
- executed_at?: string | null
- hash: string
- id: number
- name: string
- }
+ executed_at?: string | null;
+ hash: string;
+ id: number;
+ name: string;
+ };
Update: {
- executed_at?: string | null
- hash?: string
- id?: number
- name?: string
- }
- Relationships: []
- }
+ executed_at?: string | null;
+ hash?: string;
+ id?: number;
+ name?: string;
+ };
+ Relationships: [];
+ };
objects: {
Row: {
- bucket_id: string | null
- created_at: string | null
- id: string
- last_accessed_at: string | null
- metadata: Json | null
- name: string | null
- owner: string | null
- owner_id: string | null
- path_tokens: string[] | null
- updated_at: string | null
- version: string | null
- }
+ bucket_id: string | null;
+ created_at: string | null;
+ id: string;
+ last_accessed_at: string | null;
+ metadata: Json | null;
+ name: string | null;
+ owner: string | null;
+ owner_id: string | null;
+ path_tokens: string[] | null;
+ updated_at: string | null;
+ version: string | null;
+ };
Insert: {
- bucket_id?: string | null
- created_at?: string | null
- id?: string
- last_accessed_at?: string | null
- metadata?: Json | null
- name?: string | null
- owner?: string | null
- owner_id?: string | null
- path_tokens?: string[] | null
- updated_at?: string | null
- version?: string | null
- }
+ bucket_id?: string | null;
+ created_at?: string | null;
+ id?: string;
+ last_accessed_at?: string | null;
+ metadata?: Json | null;
+ name?: string | null;
+ owner?: string | null;
+ owner_id?: string | null;
+ path_tokens?: string[] | null;
+ updated_at?: string | null;
+ version?: string | null;
+ };
Update: {
- bucket_id?: string | null
- created_at?: string | null
- id?: string
- last_accessed_at?: string | null
- metadata?: Json | null
- name?: string | null
- owner?: string | null
- owner_id?: string | null
- path_tokens?: string[] | null
- updated_at?: string | null
- version?: string | null
- }
+ bucket_id?: string | null;
+ created_at?: string | null;
+ id?: string;
+ last_accessed_at?: string | null;
+ metadata?: Json | null;
+ name?: string | null;
+ owner?: string | null;
+ owner_id?: string | null;
+ path_tokens?: string[] | null;
+ updated_at?: string | null;
+ version?: string | null;
+ };
Relationships: [
{
- foreignKeyName: "objects_bucketId_fkey"
- columns: ["bucket_id"]
- isOneToOne: false
- referencedRelation: "buckets"
- referencedColumns: ["id"]
+ foreignKeyName: 'objects_bucketId_fkey';
+ columns: ['bucket_id'];
+ isOneToOne: false;
+ referencedRelation: 'buckets';
+ referencedColumns: ['id'];
},
- ]
- }
+ ];
+ };
s3_multipart_uploads: {
Row: {
- bucket_id: string
- created_at: string
- id: string
- in_progress_size: number
- key: string
- owner_id: string | null
- upload_signature: string
- version: string
- }
+ bucket_id: string;
+ created_at: string;
+ id: string;
+ in_progress_size: number;
+ key: string;
+ owner_id: string | null;
+ upload_signature: string;
+ version: string;
+ };
Insert: {
- bucket_id: string
- created_at?: string
- id: string
- in_progress_size?: number
- key: string
- owner_id?: string | null
- upload_signature: string
- version: string
- }
+ bucket_id: string;
+ created_at?: string;
+ id: string;
+ in_progress_size?: number;
+ key: string;
+ owner_id?: string | null;
+ upload_signature: string;
+ version: string;
+ };
Update: {
- bucket_id?: string
- created_at?: string
- id?: string
- in_progress_size?: number
- key?: string
- owner_id?: string | null
- upload_signature?: string
- version?: string
- }
+ bucket_id?: string;
+ created_at?: string;
+ id?: string;
+ in_progress_size?: number;
+ key?: string;
+ owner_id?: string | null;
+ upload_signature?: string;
+ version?: string;
+ };
Relationships: [
{
- foreignKeyName: "s3_multipart_uploads_bucket_id_fkey"
- columns: ["bucket_id"]
- isOneToOne: false
- referencedRelation: "buckets"
- referencedColumns: ["id"]
+ foreignKeyName: 's3_multipart_uploads_bucket_id_fkey';
+ columns: ['bucket_id'];
+ isOneToOne: false;
+ referencedRelation: 'buckets';
+ referencedColumns: ['id'];
},
- ]
- }
+ ];
+ };
s3_multipart_uploads_parts: {
Row: {
- bucket_id: string
- created_at: string
- etag: string
- id: string
- key: string
- owner_id: string | null
- part_number: number
- size: number
- upload_id: string
- version: string
- }
+ bucket_id: string;
+ created_at: string;
+ etag: string;
+ id: string;
+ key: string;
+ owner_id: string | null;
+ part_number: number;
+ size: number;
+ upload_id: string;
+ version: string;
+ };
Insert: {
- bucket_id: string
- created_at?: string
- etag: string
- id?: string
- key: string
- owner_id?: string | null
- part_number: number
- size?: number
- upload_id: string
- version: string
- }
+ bucket_id: string;
+ created_at?: string;
+ etag: string;
+ id?: string;
+ key: string;
+ owner_id?: string | null;
+ part_number: number;
+ size?: number;
+ upload_id: string;
+ version: string;
+ };
Update: {
- bucket_id?: string
- created_at?: string
- etag?: string
- id?: string
- key?: string
- owner_id?: string | null
- part_number?: number
- size?: number
- upload_id?: string
- version?: string
- }
+ bucket_id?: string;
+ created_at?: string;
+ etag?: string;
+ id?: string;
+ key?: string;
+ owner_id?: string | null;
+ part_number?: number;
+ size?: number;
+ upload_id?: string;
+ version?: string;
+ };
Relationships: [
{
- foreignKeyName: "s3_multipart_uploads_parts_bucket_id_fkey"
- columns: ["bucket_id"]
- isOneToOne: false
- referencedRelation: "buckets"
- referencedColumns: ["id"]
+ foreignKeyName: 's3_multipart_uploads_parts_bucket_id_fkey';
+ columns: ['bucket_id'];
+ isOneToOne: false;
+ referencedRelation: 'buckets';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "s3_multipart_uploads_parts_upload_id_fkey"
- columns: ["upload_id"]
- isOneToOne: false
- referencedRelation: "s3_multipart_uploads"
- referencedColumns: ["id"]
+ foreignKeyName: 's3_multipart_uploads_parts_upload_id_fkey';
+ columns: ['upload_id'];
+ isOneToOne: false;
+ referencedRelation: 's3_multipart_uploads';
+ referencedColumns: ['id'];
},
- ]
- }
- }
+ ];
+ };
+ };
Views: {
- [_ in never]: never
- }
+ [_ in never]: never;
+ };
Functions: {
can_insert_object: {
Args: {
- bucketid: string
- name: string
- owner: string
- metadata: Json
- }
- Returns: undefined
- }
+ bucketid: string;
+ name: string;
+ owner: string;
+ metadata: Json;
+ };
+ Returns: undefined;
+ };
extension: {
Args: {
- name: string
- }
- Returns: string
- }
+ name: string;
+ };
+ Returns: string;
+ };
filename: {
Args: {
- name: string
- }
- Returns: string
- }
+ name: string;
+ };
+ Returns: string;
+ };
foldername: {
Args: {
- name: string
- }
- Returns: string[]
- }
+ name: string;
+ };
+ Returns: string[];
+ };
get_size_by_bucket: {
- Args: Record
+ Args: Record;
Returns: {
- size: number
- bucket_id: string
- }[]
- }
+ size: number;
+ bucket_id: string;
+ }[];
+ };
list_multipart_uploads_with_delimiter: {
Args: {
- bucket_id: string
- prefix_param: string
- delimiter_param: string
- max_keys?: number
- next_key_token?: string
- next_upload_token?: string
- }
+ bucket_id: string;
+ prefix_param: string;
+ delimiter_param: string;
+ max_keys?: number;
+ next_key_token?: string;
+ next_upload_token?: string;
+ };
Returns: {
- key: string
- id: string
- created_at: string
- }[]
- }
+ key: string;
+ id: string;
+ created_at: string;
+ }[];
+ };
list_objects_with_delimiter: {
Args: {
- bucket_id: string
- prefix_param: string
- delimiter_param: string
- max_keys?: number
- start_after?: string
- next_token?: string
- }
+ bucket_id: string;
+ prefix_param: string;
+ delimiter_param: string;
+ max_keys?: number;
+ start_after?: string;
+ next_token?: string;
+ };
Returns: {
- name: string
- id: string
- metadata: Json
- updated_at: string
- }[]
- }
+ name: string;
+ id: string;
+ metadata: Json;
+ updated_at: string;
+ }[];
+ };
search: {
Args: {
- prefix: string
- bucketname: string
- limits?: number
- levels?: number
- offsets?: number
- search?: string
- sortcolumn?: string
- sortorder?: string
- }
+ prefix: string;
+ bucketname: string;
+ limits?: number;
+ levels?: number;
+ offsets?: number;
+ search?: string;
+ sortcolumn?: string;
+ sortorder?: string;
+ };
Returns: {
- name: string
- id: string
- updated_at: string
- created_at: string
- last_accessed_at: string
- metadata: Json
- }[]
- }
- }
+ name: string;
+ id: string;
+ updated_at: string;
+ created_at: string;
+ last_accessed_at: string;
+ metadata: Json;
+ }[];
+ };
+ };
Enums: {
- [_ in never]: never
- }
+ [_ in never]: never;
+ };
CompositeTypes: {
- [_ in never]: never
- }
- }
-}
+ [_ in never]: never;
+ };
+ };
+};
-type PublicSchema = Database[Extract]
+type PublicSchema = Database[Extract];
export type Tables<
PublicTableNameOrOptions extends
- | keyof (PublicSchema["Tables"] & PublicSchema["Views"])
+ | keyof (PublicSchema['Tables'] & PublicSchema['Views'])
| { schema: keyof Database },
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
- ? keyof (Database[PublicTableNameOrOptions["schema"]]["Tables"] &
- Database[PublicTableNameOrOptions["schema"]]["Views"])
+ ? keyof (Database[PublicTableNameOrOptions['schema']]['Tables'] &
+ Database[PublicTableNameOrOptions['schema']]['Views'])
: never = never,
> = PublicTableNameOrOptions extends { schema: keyof Database }
- ? (Database[PublicTableNameOrOptions["schema"]]["Tables"] &
- Database[PublicTableNameOrOptions["schema"]]["Views"])[TableName] extends {
- Row: infer R
+ ? (Database[PublicTableNameOrOptions['schema']]['Tables'] &
+ Database[PublicTableNameOrOptions['schema']]['Views'])[TableName] extends {
+ Row: infer R;
}
? R
: never
- : PublicTableNameOrOptions extends keyof (PublicSchema["Tables"] &
- PublicSchema["Views"])
- ? (PublicSchema["Tables"] &
- PublicSchema["Views"])[PublicTableNameOrOptions] extends {
- Row: infer R
+ : PublicTableNameOrOptions extends keyof (PublicSchema['Tables'] &
+ PublicSchema['Views'])
+ ? (PublicSchema['Tables'] &
+ PublicSchema['Views'])[PublicTableNameOrOptions] extends {
+ Row: infer R;
}
? R
: never
- : never
+ : never;
export type TablesInsert<
PublicTableNameOrOptions extends
- | keyof PublicSchema["Tables"]
+ | keyof PublicSchema['Tables']
| { schema: keyof Database },
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
- ? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"]
+ ? keyof Database[PublicTableNameOrOptions['schema']]['Tables']
: never = never,
> = PublicTableNameOrOptions extends { schema: keyof Database }
- ? Database[PublicTableNameOrOptions["schema"]]["Tables"][TableName] extends {
- Insert: infer I
+ ? Database[PublicTableNameOrOptions['schema']]['Tables'][TableName] extends {
+ Insert: infer I;
}
? I
: never
- : PublicTableNameOrOptions extends keyof PublicSchema["Tables"]
- ? PublicSchema["Tables"][PublicTableNameOrOptions] extends {
- Insert: infer I
+ : PublicTableNameOrOptions extends keyof PublicSchema['Tables']
+ ? PublicSchema['Tables'][PublicTableNameOrOptions] extends {
+ Insert: infer I;
}
? I
: never
- : never
+ : never;
export type TablesUpdate<
PublicTableNameOrOptions extends
- | keyof PublicSchema["Tables"]
+ | keyof PublicSchema['Tables']
| { schema: keyof Database },
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
- ? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"]
+ ? keyof Database[PublicTableNameOrOptions['schema']]['Tables']
: never = never,
> = PublicTableNameOrOptions extends { schema: keyof Database }
- ? Database[PublicTableNameOrOptions["schema"]]["Tables"][TableName] extends {
- Update: infer U
+ ? Database[PublicTableNameOrOptions['schema']]['Tables'][TableName] extends {
+ Update: infer U;
}
? U
: never
- : PublicTableNameOrOptions extends keyof PublicSchema["Tables"]
- ? PublicSchema["Tables"][PublicTableNameOrOptions] extends {
- Update: infer U
+ : PublicTableNameOrOptions extends keyof PublicSchema['Tables']
+ ? PublicSchema['Tables'][PublicTableNameOrOptions] extends {
+ Update: infer U;
}
? U
: never
- : never
+ : never;
export type Enums<
PublicEnumNameOrOptions extends
- | keyof PublicSchema["Enums"]
+ | keyof PublicSchema['Enums']
| { schema: keyof Database },
EnumName extends PublicEnumNameOrOptions extends { schema: keyof Database }
- ? keyof Database[PublicEnumNameOrOptions["schema"]]["Enums"]
+ ? keyof Database[PublicEnumNameOrOptions['schema']]['Enums']
: never = never,
> = PublicEnumNameOrOptions extends { schema: keyof Database }
- ? Database[PublicEnumNameOrOptions["schema"]]["Enums"][EnumName]
- : PublicEnumNameOrOptions extends keyof PublicSchema["Enums"]
- ? PublicSchema["Enums"][PublicEnumNameOrOptions]
- : never
-
+ ? Database[PublicEnumNameOrOptions['schema']]['Enums'][EnumName]
+ : PublicEnumNameOrOptions extends keyof PublicSchema['Enums']
+ ? PublicSchema['Enums'][PublicEnumNameOrOptions]
+ : never;
diff --git a/packages/billing/lemon-squeezy/src/services/lemon-squeezy-webhook-handler.service.ts b/packages/billing/lemon-squeezy/src/services/lemon-squeezy-webhook-handler.service.ts
index 3b613a53b..2e27a3fdc 100644
--- a/packages/billing/lemon-squeezy/src/services/lemon-squeezy-webhook-handler.service.ts
+++ b/packages/billing/lemon-squeezy/src/services/lemon-squeezy-webhook-handler.service.ts
@@ -1,19 +1,18 @@
import { getOrder, getVariant } from '@lemonsqueezy/lemonsqueezy.js';
-
-
-import { BillingConfig, BillingWebhookHandlerService, getLineItemTypeById } from '@kit/billing';
+import {
+ BillingConfig,
+ BillingWebhookHandlerService,
+ getLineItemTypeById,
+} from '@kit/billing';
import { getLogger } from '@kit/shared/logger';
import { Database } from '@kit/supabase/database';
-
-
import { getLemonSqueezyEnv } from '../schema/lemon-squeezy-server-env.schema';
import { OrderWebhook } from '../types/order-webhook';
import { SubscriptionWebhook } from '../types/subscription-webhook';
import { initializeLemonSqueezyClient } from './lemon-squeezy-sdk';
-import { createHmac } from "./verify-hmac";
-
+import { createHmac } from './verify-hmac';
type UpsertSubscriptionParams =
Database['public']['Functions']['upsert_subscription']['Args'];
@@ -419,7 +418,7 @@ async function isSigningSecretValid(rawBody: string, signatureHeader: string) {
const { hex: digest } = await createHmac({
key: webhooksSecret,
- data: rawBody
+ data: rawBody,
});
const signature = Buffer.from(signatureHeader, 'utf8');
diff --git a/packages/cms/core/src/create-cms-client.ts b/packages/cms/core/src/create-cms-client.ts
index e9328216f..6a07a348a 100644
--- a/packages/cms/core/src/create-cms-client.ts
+++ b/packages/cms/core/src/create-cms-client.ts
@@ -40,15 +40,20 @@ async function getKeystaticClient() {
return new KeystaticClient();
}
- console.error(`[CMS] Keystatic client is only available in Node.js runtime. Please choose a different CMS client. Returning a mock client instead of throwing an error.`);
+ console.error(
+ `[CMS] Keystatic client is only available in Node.js runtime. Please choose a different CMS client. Returning a mock client instead of throwing an error.`,
+ );
- return mockCMSClient();
+ return mockCMSClient() as unknown as CmsClient;
}
function mockCMSClient() {
return {
- async getContentItems() {
- return [];
+ getContentItems() {
+ return Promise.resolve([]);
+ },
+ getContentItemBySlug() {
+ return Promise.resolve(undefined);
},
};
}
diff --git a/packages/supabase/src/database.types.ts b/packages/supabase/src/database.types.ts
index a5e720bac..edc5bc18c 100644
--- a/packages/supabase/src/database.types.ts
+++ b/packages/supabase/src/database.types.ts
@@ -4,1336 +4,1335 @@ export type Json =
| boolean
| null
| { [key: string]: Json | undefined }
- | Json[]
+ | Json[];
export type Database = {
graphql_public: {
Tables: {
- [_ in never]: never
- }
+ [_ in never]: never;
+ };
Views: {
- [_ in never]: never
- }
+ [_ in never]: never;
+ };
Functions: {
graphql: {
Args: {
- operationName?: string
- query?: string
- variables?: Json
- extensions?: Json
- }
- Returns: Json
- }
- }
+ operationName?: string;
+ query?: string;
+ variables?: Json;
+ extensions?: Json;
+ };
+ Returns: Json;
+ };
+ };
Enums: {
- [_ in never]: never
- }
+ [_ in never]: never;
+ };
CompositeTypes: {
- [_ in never]: never
- }
- }
+ [_ in never]: never;
+ };
+ };
public: {
Tables: {
account_roles: {
Row: {
- account_id: string
- id: number
- role: string
- }
+ account_id: string;
+ id: number;
+ role: string;
+ };
Insert: {
- account_id: string
- id?: number
- role: string
- }
+ account_id: string;
+ id?: number;
+ role: string;
+ };
Update: {
- account_id?: string
- id?: number
- role?: string
- }
+ account_id?: string;
+ id?: number;
+ role?: string;
+ };
Relationships: [
{
- foreignKeyName: "account_roles_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'account_roles_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "account_roles_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_account_workspace"
- referencedColumns: ["id"]
+ foreignKeyName: 'account_roles_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_account_workspace';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "account_roles_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'account_roles_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "account_roles_role_fkey"
- columns: ["role"]
- isOneToOne: false
- referencedRelation: "roles"
- referencedColumns: ["name"]
+ foreignKeyName: 'account_roles_role_fkey';
+ columns: ['role'];
+ isOneToOne: false;
+ referencedRelation: 'roles';
+ referencedColumns: ['name'];
},
- ]
- }
+ ];
+ };
accounts: {
Row: {
- created_at: string | null
- created_by: string | null
- email: string | null
- id: string
- is_personal_account: boolean
- name: string
- picture_url: string | null
- primary_owner_user_id: string
- public_data: Json
- slug: string | null
- updated_at: string | null
- updated_by: string | null
- }
+ created_at: string | null;
+ created_by: string | null;
+ email: string | null;
+ id: string;
+ is_personal_account: boolean;
+ name: string;
+ picture_url: string | null;
+ primary_owner_user_id: string;
+ public_data: Json;
+ slug: string | null;
+ updated_at: string | null;
+ updated_by: string | null;
+ };
Insert: {
- created_at?: string | null
- created_by?: string | null
- email?: string | null
- id?: string
- is_personal_account?: boolean
- name: string
- picture_url?: string | null
- primary_owner_user_id?: string
- public_data?: Json
- slug?: string | null
- updated_at?: string | null
- updated_by?: string | null
- }
+ created_at?: string | null;
+ created_by?: string | null;
+ email?: string | null;
+ id?: string;
+ is_personal_account?: boolean;
+ name: string;
+ picture_url?: string | null;
+ primary_owner_user_id?: string;
+ public_data?: Json;
+ slug?: string | null;
+ updated_at?: string | null;
+ updated_by?: string | null;
+ };
Update: {
- created_at?: string | null
- created_by?: string | null
- email?: string | null
- id?: string
- is_personal_account?: boolean
- name?: string
- picture_url?: string | null
- primary_owner_user_id?: string
- public_data?: Json
- slug?: string | null
- updated_at?: string | null
- updated_by?: string | null
- }
+ created_at?: string | null;
+ created_by?: string | null;
+ email?: string | null;
+ id?: string;
+ is_personal_account?: boolean;
+ name?: string;
+ picture_url?: string | null;
+ primary_owner_user_id?: string;
+ public_data?: Json;
+ slug?: string | null;
+ updated_at?: string | null;
+ updated_by?: string | null;
+ };
Relationships: [
{
- foreignKeyName: "accounts_created_by_fkey"
- columns: ["created_by"]
- isOneToOne: false
- referencedRelation: "users"
- referencedColumns: ["id"]
+ foreignKeyName: 'accounts_created_by_fkey';
+ columns: ['created_by'];
+ isOneToOne: false;
+ referencedRelation: 'users';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "accounts_primary_owner_user_id_fkey"
- columns: ["primary_owner_user_id"]
- isOneToOne: false
- referencedRelation: "users"
- referencedColumns: ["id"]
+ foreignKeyName: 'accounts_primary_owner_user_id_fkey';
+ columns: ['primary_owner_user_id'];
+ isOneToOne: false;
+ referencedRelation: 'users';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "accounts_updated_by_fkey"
- columns: ["updated_by"]
- isOneToOne: false
- referencedRelation: "users"
- referencedColumns: ["id"]
+ foreignKeyName: 'accounts_updated_by_fkey';
+ columns: ['updated_by'];
+ isOneToOne: false;
+ referencedRelation: 'users';
+ referencedColumns: ['id'];
},
- ]
- }
+ ];
+ };
accounts_memberships: {
Row: {
- account_id: string
- account_role: string
- created_at: string
- created_by: string | null
- updated_at: string
- updated_by: string | null
- user_id: string
- }
+ account_id: string;
+ account_role: string;
+ created_at: string;
+ created_by: string | null;
+ updated_at: string;
+ updated_by: string | null;
+ user_id: string;
+ };
Insert: {
- account_id: string
- account_role: string
- created_at?: string
- created_by?: string | null
- updated_at?: string
- updated_by?: string | null
- user_id: string
- }
+ account_id: string;
+ account_role: string;
+ created_at?: string;
+ created_by?: string | null;
+ updated_at?: string;
+ updated_by?: string | null;
+ user_id: string;
+ };
Update: {
- account_id?: string
- account_role?: string
- created_at?: string
- created_by?: string | null
- updated_at?: string
- updated_by?: string | null
- user_id?: string
- }
+ account_id?: string;
+ account_role?: string;
+ created_at?: string;
+ created_by?: string | null;
+ updated_at?: string;
+ updated_by?: string | null;
+ user_id?: string;
+ };
Relationships: [
{
- foreignKeyName: "accounts_memberships_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'accounts_memberships_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "accounts_memberships_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_account_workspace"
- referencedColumns: ["id"]
+ foreignKeyName: 'accounts_memberships_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_account_workspace';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "accounts_memberships_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'accounts_memberships_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "accounts_memberships_account_role_fkey"
- columns: ["account_role"]
- isOneToOne: false
- referencedRelation: "roles"
- referencedColumns: ["name"]
+ foreignKeyName: 'accounts_memberships_account_role_fkey';
+ columns: ['account_role'];
+ isOneToOne: false;
+ referencedRelation: 'roles';
+ referencedColumns: ['name'];
},
{
- foreignKeyName: "accounts_memberships_created_by_fkey"
- columns: ["created_by"]
- isOneToOne: false
- referencedRelation: "users"
- referencedColumns: ["id"]
+ foreignKeyName: 'accounts_memberships_created_by_fkey';
+ columns: ['created_by'];
+ isOneToOne: false;
+ referencedRelation: 'users';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "accounts_memberships_updated_by_fkey"
- columns: ["updated_by"]
- isOneToOne: false
- referencedRelation: "users"
- referencedColumns: ["id"]
+ foreignKeyName: 'accounts_memberships_updated_by_fkey';
+ columns: ['updated_by'];
+ isOneToOne: false;
+ referencedRelation: 'users';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "accounts_memberships_user_id_fkey"
- columns: ["user_id"]
- isOneToOne: false
- referencedRelation: "users"
- referencedColumns: ["id"]
+ foreignKeyName: 'accounts_memberships_user_id_fkey';
+ columns: ['user_id'];
+ isOneToOne: false;
+ referencedRelation: 'users';
+ referencedColumns: ['id'];
},
- ]
- }
+ ];
+ };
billing_customers: {
Row: {
- account_id: string
- customer_id: string
- email: string | null
- id: number
- provider: Database["public"]["Enums"]["billing_provider"]
- }
+ account_id: string;
+ customer_id: string;
+ email: string | null;
+ id: number;
+ provider: Database['public']['Enums']['billing_provider'];
+ };
Insert: {
- account_id: string
- customer_id: string
- email?: string | null
- id?: number
- provider: Database["public"]["Enums"]["billing_provider"]
- }
+ account_id: string;
+ customer_id: string;
+ email?: string | null;
+ id?: number;
+ provider: Database['public']['Enums']['billing_provider'];
+ };
Update: {
- account_id?: string
- customer_id?: string
- email?: string | null
- id?: number
- provider?: Database["public"]["Enums"]["billing_provider"]
- }
+ account_id?: string;
+ customer_id?: string;
+ email?: string | null;
+ id?: number;
+ provider?: Database['public']['Enums']['billing_provider'];
+ };
Relationships: [
{
- foreignKeyName: "billing_customers_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'billing_customers_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "billing_customers_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_account_workspace"
- referencedColumns: ["id"]
+ foreignKeyName: 'billing_customers_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_account_workspace';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "billing_customers_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'billing_customers_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_accounts';
+ referencedColumns: ['id'];
},
- ]
- }
+ ];
+ };
config: {
Row: {
- billing_provider: Database["public"]["Enums"]["billing_provider"]
- enable_account_billing: boolean
- enable_team_account_billing: boolean
- enable_team_accounts: boolean
- }
+ billing_provider: Database['public']['Enums']['billing_provider'];
+ enable_account_billing: boolean;
+ enable_team_account_billing: boolean;
+ enable_team_accounts: boolean;
+ };
Insert: {
- billing_provider?: Database["public"]["Enums"]["billing_provider"]
- enable_account_billing?: boolean
- enable_team_account_billing?: boolean
- enable_team_accounts?: boolean
- }
+ billing_provider?: Database['public']['Enums']['billing_provider'];
+ enable_account_billing?: boolean;
+ enable_team_account_billing?: boolean;
+ enable_team_accounts?: boolean;
+ };
Update: {
- billing_provider?: Database["public"]["Enums"]["billing_provider"]
- enable_account_billing?: boolean
- enable_team_account_billing?: boolean
- enable_team_accounts?: boolean
- }
- Relationships: []
- }
+ billing_provider?: Database['public']['Enums']['billing_provider'];
+ enable_account_billing?: boolean;
+ enable_team_account_billing?: boolean;
+ enable_team_accounts?: boolean;
+ };
+ Relationships: [];
+ };
invitations: {
Row: {
- account_id: string
- created_at: string
- email: string
- expires_at: string
- id: number
- invite_token: string
- invited_by: string
- role: string
- updated_at: string
- }
+ account_id: string;
+ created_at: string;
+ email: string;
+ expires_at: string;
+ id: number;
+ invite_token: string;
+ invited_by: string;
+ role: string;
+ updated_at: string;
+ };
Insert: {
- account_id: string
- created_at?: string
- email: string
- expires_at?: string
- id?: number
- invite_token: string
- invited_by: string
- role: string
- updated_at?: string
- }
+ account_id: string;
+ created_at?: string;
+ email: string;
+ expires_at?: string;
+ id?: number;
+ invite_token: string;
+ invited_by: string;
+ role: string;
+ updated_at?: string;
+ };
Update: {
- account_id?: string
- created_at?: string
- email?: string
- expires_at?: string
- id?: number
- invite_token?: string
- invited_by?: string
- role?: string
- updated_at?: string
- }
+ account_id?: string;
+ created_at?: string;
+ email?: string;
+ expires_at?: string;
+ id?: number;
+ invite_token?: string;
+ invited_by?: string;
+ role?: string;
+ updated_at?: string;
+ };
Relationships: [
{
- foreignKeyName: "invitations_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'invitations_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "invitations_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_account_workspace"
- referencedColumns: ["id"]
+ foreignKeyName: 'invitations_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_account_workspace';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "invitations_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'invitations_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "invitations_invited_by_fkey"
- columns: ["invited_by"]
- isOneToOne: false
- referencedRelation: "users"
- referencedColumns: ["id"]
+ foreignKeyName: 'invitations_invited_by_fkey';
+ columns: ['invited_by'];
+ isOneToOne: false;
+ referencedRelation: 'users';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "invitations_role_fkey"
- columns: ["role"]
- isOneToOne: false
- referencedRelation: "roles"
- referencedColumns: ["name"]
+ foreignKeyName: 'invitations_role_fkey';
+ columns: ['role'];
+ isOneToOne: false;
+ referencedRelation: 'roles';
+ referencedColumns: ['name'];
},
- ]
- }
+ ];
+ };
order_items: {
Row: {
- created_at: string
- order_id: string
- price_amount: number | null
- product_id: string
- quantity: number
- updated_at: string
- variant_id: string
- }
+ created_at: string;
+ order_id: string;
+ price_amount: number | null;
+ product_id: string;
+ quantity: number;
+ updated_at: string;
+ variant_id: string;
+ };
Insert: {
- created_at?: string
- order_id: string
- price_amount?: number | null
- product_id: string
- quantity?: number
- updated_at?: string
- variant_id: string
- }
+ created_at?: string;
+ order_id: string;
+ price_amount?: number | null;
+ product_id: string;
+ quantity?: number;
+ updated_at?: string;
+ variant_id: string;
+ };
Update: {
- created_at?: string
- order_id?: string
- price_amount?: number | null
- product_id?: string
- quantity?: number
- updated_at?: string
- variant_id?: string
- }
+ created_at?: string;
+ order_id?: string;
+ price_amount?: number | null;
+ product_id?: string;
+ quantity?: number;
+ updated_at?: string;
+ variant_id?: string;
+ };
Relationships: [
{
- foreignKeyName: "order_items_order_id_fkey"
- columns: ["order_id"]
- isOneToOne: false
- referencedRelation: "orders"
- referencedColumns: ["id"]
+ foreignKeyName: 'order_items_order_id_fkey';
+ columns: ['order_id'];
+ isOneToOne: false;
+ referencedRelation: 'orders';
+ referencedColumns: ['id'];
},
- ]
- }
+ ];
+ };
orders: {
Row: {
- account_id: string
- billing_customer_id: number
- billing_provider: Database["public"]["Enums"]["billing_provider"]
- created_at: string
- currency: string
- id: string
- status: Database["public"]["Enums"]["payment_status"]
- total_amount: number
- updated_at: string
- }
+ account_id: string;
+ billing_customer_id: number;
+ billing_provider: Database['public']['Enums']['billing_provider'];
+ created_at: string;
+ currency: string;
+ id: string;
+ status: Database['public']['Enums']['payment_status'];
+ total_amount: number;
+ updated_at: string;
+ };
Insert: {
- account_id: string
- billing_customer_id: number
- billing_provider: Database["public"]["Enums"]["billing_provider"]
- created_at?: string
- currency: string
- id: string
- status: Database["public"]["Enums"]["payment_status"]
- total_amount: number
- updated_at?: string
- }
+ account_id: string;
+ billing_customer_id: number;
+ billing_provider: Database['public']['Enums']['billing_provider'];
+ created_at?: string;
+ currency: string;
+ id: string;
+ status: Database['public']['Enums']['payment_status'];
+ total_amount: number;
+ updated_at?: string;
+ };
Update: {
- account_id?: string
- billing_customer_id?: number
- billing_provider?: Database["public"]["Enums"]["billing_provider"]
- created_at?: string
- currency?: string
- id?: string
- status?: Database["public"]["Enums"]["payment_status"]
- total_amount?: number
- updated_at?: string
- }
+ account_id?: string;
+ billing_customer_id?: number;
+ billing_provider?: Database['public']['Enums']['billing_provider'];
+ created_at?: string;
+ currency?: string;
+ id?: string;
+ status?: Database['public']['Enums']['payment_status'];
+ total_amount?: number;
+ updated_at?: string;
+ };
Relationships: [
{
- foreignKeyName: "orders_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'orders_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "orders_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_account_workspace"
- referencedColumns: ["id"]
+ foreignKeyName: 'orders_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_account_workspace';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "orders_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'orders_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "orders_billing_customer_id_fkey"
- columns: ["billing_customer_id"]
- isOneToOne: false
- referencedRelation: "billing_customers"
- referencedColumns: ["id"]
+ foreignKeyName: 'orders_billing_customer_id_fkey';
+ columns: ['billing_customer_id'];
+ isOneToOne: false;
+ referencedRelation: 'billing_customers';
+ referencedColumns: ['id'];
},
- ]
- }
+ ];
+ };
role_permissions: {
Row: {
- id: number
- permission: Database["public"]["Enums"]["app_permissions"]
- role: string
- }
+ id: number;
+ permission: Database['public']['Enums']['app_permissions'];
+ role: string;
+ };
Insert: {
- id?: number
- permission: Database["public"]["Enums"]["app_permissions"]
- role: string
- }
+ id?: number;
+ permission: Database['public']['Enums']['app_permissions'];
+ role: string;
+ };
Update: {
- id?: number
- permission?: Database["public"]["Enums"]["app_permissions"]
- role?: string
- }
+ id?: number;
+ permission?: Database['public']['Enums']['app_permissions'];
+ role?: string;
+ };
Relationships: [
{
- foreignKeyName: "role_permissions_role_fkey"
- columns: ["role"]
- isOneToOne: false
- referencedRelation: "roles"
- referencedColumns: ["name"]
+ foreignKeyName: 'role_permissions_role_fkey';
+ columns: ['role'];
+ isOneToOne: false;
+ referencedRelation: 'roles';
+ referencedColumns: ['name'];
},
- ]
- }
+ ];
+ };
roles: {
Row: {
- account_id: string | null
- hierarchy_level: number
- name: string
- }
+ account_id: string | null;
+ hierarchy_level: number;
+ name: string;
+ };
Insert: {
- account_id?: string | null
- hierarchy_level: number
- name: string
- }
+ account_id?: string | null;
+ hierarchy_level: number;
+ name: string;
+ };
Update: {
- account_id?: string | null
- hierarchy_level?: number
- name?: string
- }
+ account_id?: string | null;
+ hierarchy_level?: number;
+ name?: string;
+ };
Relationships: [
{
- foreignKeyName: "roles_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'roles_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "roles_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_account_workspace"
- referencedColumns: ["id"]
+ foreignKeyName: 'roles_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_account_workspace';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "roles_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'roles_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_accounts';
+ referencedColumns: ['id'];
},
- ]
- }
+ ];
+ };
subscription_items: {
Row: {
- created_at: string
- interval: string
- interval_count: number
- price_amount: number | null
- product_id: string
- quantity: number
- subscription_id: string
- type: Database["public"]["Enums"]["subscription_item_type"]
- updated_at: string
- variant_id: string
- }
+ created_at: string;
+ interval: string;
+ interval_count: number;
+ price_amount: number | null;
+ product_id: string;
+ quantity: number;
+ subscription_id: string;
+ type: Database['public']['Enums']['subscription_item_type'];
+ updated_at: string;
+ variant_id: string;
+ };
Insert: {
- created_at?: string
- interval: string
- interval_count: number
- price_amount?: number | null
- product_id: string
- quantity?: number
- subscription_id: string
- type: Database["public"]["Enums"]["subscription_item_type"]
- updated_at?: string
- variant_id: string
- }
+ created_at?: string;
+ interval: string;
+ interval_count: number;
+ price_amount?: number | null;
+ product_id: string;
+ quantity?: number;
+ subscription_id: string;
+ type: Database['public']['Enums']['subscription_item_type'];
+ updated_at?: string;
+ variant_id: string;
+ };
Update: {
- created_at?: string
- interval?: string
- interval_count?: number
- price_amount?: number | null
- product_id?: string
- quantity?: number
- subscription_id?: string
- type?: Database["public"]["Enums"]["subscription_item_type"]
- updated_at?: string
- variant_id?: string
- }
+ created_at?: string;
+ interval?: string;
+ interval_count?: number;
+ price_amount?: number | null;
+ product_id?: string;
+ quantity?: number;
+ subscription_id?: string;
+ type?: Database['public']['Enums']['subscription_item_type'];
+ updated_at?: string;
+ variant_id?: string;
+ };
Relationships: [
{
- foreignKeyName: "subscription_items_subscription_id_fkey"
- columns: ["subscription_id"]
- isOneToOne: false
- referencedRelation: "subscriptions"
- referencedColumns: ["id"]
+ foreignKeyName: 'subscription_items_subscription_id_fkey';
+ columns: ['subscription_id'];
+ isOneToOne: false;
+ referencedRelation: 'subscriptions';
+ referencedColumns: ['id'];
},
- ]
- }
+ ];
+ };
subscriptions: {
Row: {
- account_id: string
- active: boolean
- billing_customer_id: number
- billing_provider: Database["public"]["Enums"]["billing_provider"]
- cancel_at_period_end: boolean
- created_at: string
- currency: string
- id: string
- period_ends_at: string
- period_starts_at: string
- status: Database["public"]["Enums"]["subscription_status"]
- trial_ends_at: string | null
- trial_starts_at: string | null
- updated_at: string
- }
+ account_id: string;
+ active: boolean;
+ billing_customer_id: number;
+ billing_provider: Database['public']['Enums']['billing_provider'];
+ cancel_at_period_end: boolean;
+ created_at: string;
+ currency: string;
+ id: string;
+ period_ends_at: string;
+ period_starts_at: string;
+ status: Database['public']['Enums']['subscription_status'];
+ trial_ends_at: string | null;
+ trial_starts_at: string | null;
+ updated_at: string;
+ };
Insert: {
- account_id: string
- active: boolean
- billing_customer_id: number
- billing_provider: Database["public"]["Enums"]["billing_provider"]
- cancel_at_period_end: boolean
- created_at?: string
- currency: string
- id: string
- period_ends_at: string
- period_starts_at: string
- status: Database["public"]["Enums"]["subscription_status"]
- trial_ends_at?: string | null
- trial_starts_at?: string | null
- updated_at?: string
- }
+ account_id: string;
+ active: boolean;
+ billing_customer_id: number;
+ billing_provider: Database['public']['Enums']['billing_provider'];
+ cancel_at_period_end: boolean;
+ created_at?: string;
+ currency: string;
+ id: string;
+ period_ends_at: string;
+ period_starts_at: string;
+ status: Database['public']['Enums']['subscription_status'];
+ trial_ends_at?: string | null;
+ trial_starts_at?: string | null;
+ updated_at?: string;
+ };
Update: {
- account_id?: string
- active?: boolean
- billing_customer_id?: number
- billing_provider?: Database["public"]["Enums"]["billing_provider"]
- cancel_at_period_end?: boolean
- created_at?: string
- currency?: string
- id?: string
- period_ends_at?: string
- period_starts_at?: string
- status?: Database["public"]["Enums"]["subscription_status"]
- trial_ends_at?: string | null
- trial_starts_at?: string | null
- updated_at?: string
- }
+ account_id?: string;
+ active?: boolean;
+ billing_customer_id?: number;
+ billing_provider?: Database['public']['Enums']['billing_provider'];
+ cancel_at_period_end?: boolean;
+ created_at?: string;
+ currency?: string;
+ id?: string;
+ period_ends_at?: string;
+ period_starts_at?: string;
+ status?: Database['public']['Enums']['subscription_status'];
+ trial_ends_at?: string | null;
+ trial_starts_at?: string | null;
+ updated_at?: string;
+ };
Relationships: [
{
- foreignKeyName: "subscriptions_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'subscriptions_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "subscriptions_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_account_workspace"
- referencedColumns: ["id"]
+ foreignKeyName: 'subscriptions_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_account_workspace';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "subscriptions_account_id_fkey"
- columns: ["account_id"]
- isOneToOne: false
- referencedRelation: "user_accounts"
- referencedColumns: ["id"]
+ foreignKeyName: 'subscriptions_account_id_fkey';
+ columns: ['account_id'];
+ isOneToOne: false;
+ referencedRelation: 'user_accounts';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "subscriptions_billing_customer_id_fkey"
- columns: ["billing_customer_id"]
- isOneToOne: false
- referencedRelation: "billing_customers"
- referencedColumns: ["id"]
+ foreignKeyName: 'subscriptions_billing_customer_id_fkey';
+ columns: ['billing_customer_id'];
+ isOneToOne: false;
+ referencedRelation: 'billing_customers';
+ referencedColumns: ['id'];
},
- ]
- }
- }
+ ];
+ };
+ };
Views: {
user_account_workspace: {
Row: {
- id: string | null
- name: string | null
- picture_url: string | null
- public_data: Json | null
+ id: string | null;
+ name: string | null;
+ picture_url: string | null;
+ public_data: Json | null;
subscription_status:
- | Database["public"]["Enums"]["subscription_status"]
- | null
- }
- Relationships: []
- }
+ | Database['public']['Enums']['subscription_status']
+ | null;
+ };
+ Relationships: [];
+ };
user_accounts: {
Row: {
- id: string | null
- name: string | null
- picture_url: string | null
- role: string | null
- slug: string | null
- }
+ id: string | null;
+ name: string | null;
+ picture_url: string | null;
+ role: string | null;
+ slug: string | null;
+ };
Relationships: [
{
- foreignKeyName: "accounts_memberships_account_role_fkey"
- columns: ["role"]
- isOneToOne: false
- referencedRelation: "roles"
- referencedColumns: ["name"]
+ foreignKeyName: 'accounts_memberships_account_role_fkey';
+ columns: ['role'];
+ isOneToOne: false;
+ referencedRelation: 'roles';
+ referencedColumns: ['name'];
},
- ]
- }
- }
+ ];
+ };
+ };
Functions: {
accept_invitation: {
Args: {
- token: string
- user_id: string
- }
- Returns: string
- }
+ token: string;
+ user_id: string;
+ };
+ Returns: string;
+ };
add_invitations_to_account: {
Args: {
- account_slug: string
- invitations: Database["public"]["CompositeTypes"]["invitation"][]
- }
- Returns: Database["public"]["Tables"]["invitations"]["Row"][]
- }
+ account_slug: string;
+ invitations: Database['public']['CompositeTypes']['invitation'][];
+ };
+ Returns: Database['public']['Tables']['invitations']['Row'][];
+ };
create_invitation: {
Args: {
- account_id: string
- email: string
- role: string
- }
+ account_id: string;
+ email: string;
+ role: string;
+ };
Returns: {
- account_id: string
- created_at: string
- email: string
- expires_at: string
- id: number
- invite_token: string
- invited_by: string
- role: string
- updated_at: string
- }
- }
+ account_id: string;
+ created_at: string;
+ email: string;
+ expires_at: string;
+ id: number;
+ invite_token: string;
+ invited_by: string;
+ role: string;
+ updated_at: string;
+ };
+ };
create_team_account: {
Args: {
- account_name: string
- }
+ account_name: string;
+ };
Returns: {
- created_at: string | null
- created_by: string | null
- email: string | null
- id: string
- is_personal_account: boolean
- name: string
- picture_url: string | null
- primary_owner_user_id: string
- public_data: Json
- slug: string | null
- updated_at: string | null
- updated_by: string | null
- }
- }
+ created_at: string | null;
+ created_by: string | null;
+ email: string | null;
+ id: string;
+ is_personal_account: boolean;
+ name: string;
+ picture_url: string | null;
+ primary_owner_user_id: string;
+ public_data: Json;
+ slug: string | null;
+ updated_at: string | null;
+ updated_by: string | null;
+ };
+ };
get_account_invitations: {
Args: {
- account_slug: string
- }
+ account_slug: string;
+ };
Returns: {
- id: number
- email: string
- account_id: string
- invited_by: string
- role: string
- created_at: string
- updated_at: string
- expires_at: string
- inviter_name: string
- inviter_email: string
- }[]
- }
+ id: number;
+ email: string;
+ account_id: string;
+ invited_by: string;
+ role: string;
+ created_at: string;
+ updated_at: string;
+ expires_at: string;
+ inviter_name: string;
+ inviter_email: string;
+ }[];
+ };
get_account_members: {
Args: {
- account_slug: string
- }
+ account_slug: string;
+ };
Returns: {
- id: string
- user_id: string
- account_id: string
- role: string
- role_hierarchy_level: number
- primary_owner_user_id: string
- name: string
- email: string
- picture_url: string
- created_at: string
- updated_at: string
- }[]
- }
+ id: string;
+ user_id: string;
+ account_id: string;
+ role: string;
+ role_hierarchy_level: number;
+ primary_owner_user_id: string;
+ name: string;
+ email: string;
+ picture_url: string;
+ created_at: string;
+ updated_at: string;
+ }[];
+ };
get_config: {
- Args: Record
- Returns: Json
- }
+ Args: Record;
+ Returns: Json;
+ };
has_more_elevated_role: {
Args: {
- target_user_id: string
- target_account_id: string
- role_name: string
- }
- Returns: boolean
- }
+ target_user_id: string;
+ target_account_id: string;
+ role_name: string;
+ };
+ Returns: boolean;
+ };
has_permission: {
Args: {
- user_id: string
- account_id: string
- permission_name: Database["public"]["Enums"]["app_permissions"]
- }
- Returns: boolean
- }
+ user_id: string;
+ account_id: string;
+ permission_name: Database['public']['Enums']['app_permissions'];
+ };
+ Returns: boolean;
+ };
has_role_on_account: {
Args: {
- account_id: string
- account_role?: string
- }
- Returns: boolean
- }
+ account_id: string;
+ account_role?: string;
+ };
+ Returns: boolean;
+ };
is_account_owner: {
Args: {
- account_id: string
- }
- Returns: boolean
- }
+ account_id: string;
+ };
+ Returns: boolean;
+ };
is_set: {
Args: {
- field_name: string
- }
- Returns: boolean
- }
+ field_name: string;
+ };
+ Returns: boolean;
+ };
is_team_member: {
Args: {
- account_id: string
- user_id: string
- }
- Returns: boolean
- }
+ account_id: string;
+ user_id: string;
+ };
+ Returns: boolean;
+ };
team_account_workspace: {
Args: {
- account_slug: string
- }
+ account_slug: string;
+ };
Returns: {
- id: string
- name: string
- picture_url: string
- slug: string
- role: string
- role_hierarchy_level: number
- primary_owner_user_id: string
- subscription_status: Database["public"]["Enums"]["subscription_status"]
- permissions: Database["public"]["Enums"]["app_permissions"][]
- }[]
- }
+ id: string;
+ name: string;
+ picture_url: string;
+ slug: string;
+ role: string;
+ role_hierarchy_level: number;
+ primary_owner_user_id: string;
+ subscription_status: Database['public']['Enums']['subscription_status'];
+ permissions: Database['public']['Enums']['app_permissions'][];
+ }[];
+ };
transfer_team_account_ownership: {
Args: {
- target_account_id: string
- new_owner_id: string
- }
- Returns: undefined
- }
+ target_account_id: string;
+ new_owner_id: string;
+ };
+ Returns: undefined;
+ };
unaccent: {
Args: {
- "": string
- }
- Returns: string
- }
+ '': string;
+ };
+ Returns: string;
+ };
unaccent_init: {
Args: {
- "": unknown
- }
- Returns: unknown
- }
+ '': unknown;
+ };
+ Returns: unknown;
+ };
upsert_order: {
Args: {
- target_account_id: string
- target_customer_id: string
- target_order_id: string
- status: Database["public"]["Enums"]["payment_status"]
- billing_provider: Database["public"]["Enums"]["billing_provider"]
- total_amount: number
- currency: string
- line_items: Json
- }
+ target_account_id: string;
+ target_customer_id: string;
+ target_order_id: string;
+ status: Database['public']['Enums']['payment_status'];
+ billing_provider: Database['public']['Enums']['billing_provider'];
+ total_amount: number;
+ currency: string;
+ line_items: Json;
+ };
Returns: {
- account_id: string
- billing_customer_id: number
- billing_provider: Database["public"]["Enums"]["billing_provider"]
- created_at: string
- currency: string
- id: string
- status: Database["public"]["Enums"]["payment_status"]
- total_amount: number
- updated_at: string
- }
- }
+ account_id: string;
+ billing_customer_id: number;
+ billing_provider: Database['public']['Enums']['billing_provider'];
+ created_at: string;
+ currency: string;
+ id: string;
+ status: Database['public']['Enums']['payment_status'];
+ total_amount: number;
+ updated_at: string;
+ };
+ };
upsert_subscription: {
Args: {
- target_account_id: string
- target_customer_id: string
- target_subscription_id: string
- active: boolean
- status: Database["public"]["Enums"]["subscription_status"]
- billing_provider: Database["public"]["Enums"]["billing_provider"]
- cancel_at_period_end: boolean
- currency: string
- period_starts_at: string
- period_ends_at: string
- line_items: Json
- trial_starts_at?: string
- trial_ends_at?: string
- }
+ target_account_id: string;
+ target_customer_id: string;
+ target_subscription_id: string;
+ active: boolean;
+ status: Database['public']['Enums']['subscription_status'];
+ billing_provider: Database['public']['Enums']['billing_provider'];
+ cancel_at_period_end: boolean;
+ currency: string;
+ period_starts_at: string;
+ period_ends_at: string;
+ line_items: Json;
+ trial_starts_at?: string;
+ trial_ends_at?: string;
+ };
Returns: {
- account_id: string
- active: boolean
- billing_customer_id: number
- billing_provider: Database["public"]["Enums"]["billing_provider"]
- cancel_at_period_end: boolean
- created_at: string
- currency: string
- id: string
- period_ends_at: string
- period_starts_at: string
- status: Database["public"]["Enums"]["subscription_status"]
- trial_ends_at: string | null
- trial_starts_at: string | null
- updated_at: string
- }
- }
- }
+ account_id: string;
+ active: boolean;
+ billing_customer_id: number;
+ billing_provider: Database['public']['Enums']['billing_provider'];
+ cancel_at_period_end: boolean;
+ created_at: string;
+ currency: string;
+ id: string;
+ period_ends_at: string;
+ period_starts_at: string;
+ status: Database['public']['Enums']['subscription_status'];
+ trial_ends_at: string | null;
+ trial_starts_at: string | null;
+ updated_at: string;
+ };
+ };
+ };
Enums: {
app_permissions:
- | "roles.manage"
- | "billing.manage"
- | "settings.manage"
- | "members.manage"
- | "invites.manage"
- billing_provider: "stripe" | "lemon-squeezy" | "paddle"
- payment_status: "pending" | "succeeded" | "failed"
- subscription_item_type: "flat" | "per_seat" | "metered"
+ | 'roles.manage'
+ | 'billing.manage'
+ | 'settings.manage'
+ | 'members.manage'
+ | 'invites.manage';
+ billing_provider: 'stripe' | 'lemon-squeezy' | 'paddle';
+ payment_status: 'pending' | 'succeeded' | 'failed';
+ subscription_item_type: 'flat' | 'per_seat' | 'metered';
subscription_status:
- | "active"
- | "trialing"
- | "past_due"
- | "canceled"
- | "unpaid"
- | "incomplete"
- | "incomplete_expired"
- | "paused"
- }
+ | 'active'
+ | 'trialing'
+ | 'past_due'
+ | 'canceled'
+ | 'unpaid'
+ | 'incomplete'
+ | 'incomplete_expired'
+ | 'paused';
+ };
CompositeTypes: {
invitation: {
- email: string | null
- role: string | null
- }
- }
- }
+ email: string | null;
+ role: string | null;
+ };
+ };
+ };
storage: {
Tables: {
buckets: {
Row: {
- allowed_mime_types: string[] | null
- avif_autodetection: boolean | null
- created_at: string | null
- file_size_limit: number | null
- id: string
- name: string
- owner: string | null
- owner_id: string | null
- public: boolean | null
- updated_at: string | null
- }
+ allowed_mime_types: string[] | null;
+ avif_autodetection: boolean | null;
+ created_at: string | null;
+ file_size_limit: number | null;
+ id: string;
+ name: string;
+ owner: string | null;
+ owner_id: string | null;
+ public: boolean | null;
+ updated_at: string | null;
+ };
Insert: {
- allowed_mime_types?: string[] | null
- avif_autodetection?: boolean | null
- created_at?: string | null
- file_size_limit?: number | null
- id: string
- name: string
- owner?: string | null
- owner_id?: string | null
- public?: boolean | null
- updated_at?: string | null
- }
+ allowed_mime_types?: string[] | null;
+ avif_autodetection?: boolean | null;
+ created_at?: string | null;
+ file_size_limit?: number | null;
+ id: string;
+ name: string;
+ owner?: string | null;
+ owner_id?: string | null;
+ public?: boolean | null;
+ updated_at?: string | null;
+ };
Update: {
- allowed_mime_types?: string[] | null
- avif_autodetection?: boolean | null
- created_at?: string | null
- file_size_limit?: number | null
- id?: string
- name?: string
- owner?: string | null
- owner_id?: string | null
- public?: boolean | null
- updated_at?: string | null
- }
- Relationships: []
- }
+ allowed_mime_types?: string[] | null;
+ avif_autodetection?: boolean | null;
+ created_at?: string | null;
+ file_size_limit?: number | null;
+ id?: string;
+ name?: string;
+ owner?: string | null;
+ owner_id?: string | null;
+ public?: boolean | null;
+ updated_at?: string | null;
+ };
+ Relationships: [];
+ };
migrations: {
Row: {
- executed_at: string | null
- hash: string
- id: number
- name: string
- }
+ executed_at: string | null;
+ hash: string;
+ id: number;
+ name: string;
+ };
Insert: {
- executed_at?: string | null
- hash: string
- id: number
- name: string
- }
+ executed_at?: string | null;
+ hash: string;
+ id: number;
+ name: string;
+ };
Update: {
- executed_at?: string | null
- hash?: string
- id?: number
- name?: string
- }
- Relationships: []
- }
+ executed_at?: string | null;
+ hash?: string;
+ id?: number;
+ name?: string;
+ };
+ Relationships: [];
+ };
objects: {
Row: {
- bucket_id: string | null
- created_at: string | null
- id: string
- last_accessed_at: string | null
- metadata: Json | null
- name: string | null
- owner: string | null
- owner_id: string | null
- path_tokens: string[] | null
- updated_at: string | null
- version: string | null
- }
+ bucket_id: string | null;
+ created_at: string | null;
+ id: string;
+ last_accessed_at: string | null;
+ metadata: Json | null;
+ name: string | null;
+ owner: string | null;
+ owner_id: string | null;
+ path_tokens: string[] | null;
+ updated_at: string | null;
+ version: string | null;
+ };
Insert: {
- bucket_id?: string | null
- created_at?: string | null
- id?: string
- last_accessed_at?: string | null
- metadata?: Json | null
- name?: string | null
- owner?: string | null
- owner_id?: string | null
- path_tokens?: string[] | null
- updated_at?: string | null
- version?: string | null
- }
+ bucket_id?: string | null;
+ created_at?: string | null;
+ id?: string;
+ last_accessed_at?: string | null;
+ metadata?: Json | null;
+ name?: string | null;
+ owner?: string | null;
+ owner_id?: string | null;
+ path_tokens?: string[] | null;
+ updated_at?: string | null;
+ version?: string | null;
+ };
Update: {
- bucket_id?: string | null
- created_at?: string | null
- id?: string
- last_accessed_at?: string | null
- metadata?: Json | null
- name?: string | null
- owner?: string | null
- owner_id?: string | null
- path_tokens?: string[] | null
- updated_at?: string | null
- version?: string | null
- }
+ bucket_id?: string | null;
+ created_at?: string | null;
+ id?: string;
+ last_accessed_at?: string | null;
+ metadata?: Json | null;
+ name?: string | null;
+ owner?: string | null;
+ owner_id?: string | null;
+ path_tokens?: string[] | null;
+ updated_at?: string | null;
+ version?: string | null;
+ };
Relationships: [
{
- foreignKeyName: "objects_bucketId_fkey"
- columns: ["bucket_id"]
- isOneToOne: false
- referencedRelation: "buckets"
- referencedColumns: ["id"]
+ foreignKeyName: 'objects_bucketId_fkey';
+ columns: ['bucket_id'];
+ isOneToOne: false;
+ referencedRelation: 'buckets';
+ referencedColumns: ['id'];
},
- ]
- }
+ ];
+ };
s3_multipart_uploads: {
Row: {
- bucket_id: string
- created_at: string
- id: string
- in_progress_size: number
- key: string
- owner_id: string | null
- upload_signature: string
- version: string
- }
+ bucket_id: string;
+ created_at: string;
+ id: string;
+ in_progress_size: number;
+ key: string;
+ owner_id: string | null;
+ upload_signature: string;
+ version: string;
+ };
Insert: {
- bucket_id: string
- created_at?: string
- id: string
- in_progress_size?: number
- key: string
- owner_id?: string | null
- upload_signature: string
- version: string
- }
+ bucket_id: string;
+ created_at?: string;
+ id: string;
+ in_progress_size?: number;
+ key: string;
+ owner_id?: string | null;
+ upload_signature: string;
+ version: string;
+ };
Update: {
- bucket_id?: string
- created_at?: string
- id?: string
- in_progress_size?: number
- key?: string
- owner_id?: string | null
- upload_signature?: string
- version?: string
- }
+ bucket_id?: string;
+ created_at?: string;
+ id?: string;
+ in_progress_size?: number;
+ key?: string;
+ owner_id?: string | null;
+ upload_signature?: string;
+ version?: string;
+ };
Relationships: [
{
- foreignKeyName: "s3_multipart_uploads_bucket_id_fkey"
- columns: ["bucket_id"]
- isOneToOne: false
- referencedRelation: "buckets"
- referencedColumns: ["id"]
+ foreignKeyName: 's3_multipart_uploads_bucket_id_fkey';
+ columns: ['bucket_id'];
+ isOneToOne: false;
+ referencedRelation: 'buckets';
+ referencedColumns: ['id'];
},
- ]
- }
+ ];
+ };
s3_multipart_uploads_parts: {
Row: {
- bucket_id: string
- created_at: string
- etag: string
- id: string
- key: string
- owner_id: string | null
- part_number: number
- size: number
- upload_id: string
- version: string
- }
+ bucket_id: string;
+ created_at: string;
+ etag: string;
+ id: string;
+ key: string;
+ owner_id: string | null;
+ part_number: number;
+ size: number;
+ upload_id: string;
+ version: string;
+ };
Insert: {
- bucket_id: string
- created_at?: string
- etag: string
- id?: string
- key: string
- owner_id?: string | null
- part_number: number
- size?: number
- upload_id: string
- version: string
- }
+ bucket_id: string;
+ created_at?: string;
+ etag: string;
+ id?: string;
+ key: string;
+ owner_id?: string | null;
+ part_number: number;
+ size?: number;
+ upload_id: string;
+ version: string;
+ };
Update: {
- bucket_id?: string
- created_at?: string
- etag?: string
- id?: string
- key?: string
- owner_id?: string | null
- part_number?: number
- size?: number
- upload_id?: string
- version?: string
- }
+ bucket_id?: string;
+ created_at?: string;
+ etag?: string;
+ id?: string;
+ key?: string;
+ owner_id?: string | null;
+ part_number?: number;
+ size?: number;
+ upload_id?: string;
+ version?: string;
+ };
Relationships: [
{
- foreignKeyName: "s3_multipart_uploads_parts_bucket_id_fkey"
- columns: ["bucket_id"]
- isOneToOne: false
- referencedRelation: "buckets"
- referencedColumns: ["id"]
+ foreignKeyName: 's3_multipart_uploads_parts_bucket_id_fkey';
+ columns: ['bucket_id'];
+ isOneToOne: false;
+ referencedRelation: 'buckets';
+ referencedColumns: ['id'];
},
{
- foreignKeyName: "s3_multipart_uploads_parts_upload_id_fkey"
- columns: ["upload_id"]
- isOneToOne: false
- referencedRelation: "s3_multipart_uploads"
- referencedColumns: ["id"]
+ foreignKeyName: 's3_multipart_uploads_parts_upload_id_fkey';
+ columns: ['upload_id'];
+ isOneToOne: false;
+ referencedRelation: 's3_multipart_uploads';
+ referencedColumns: ['id'];
},
- ]
- }
- }
+ ];
+ };
+ };
Views: {
- [_ in never]: never
- }
+ [_ in never]: never;
+ };
Functions: {
can_insert_object: {
Args: {
- bucketid: string
- name: string
- owner: string
- metadata: Json
- }
- Returns: undefined
- }
+ bucketid: string;
+ name: string;
+ owner: string;
+ metadata: Json;
+ };
+ Returns: undefined;
+ };
extension: {
Args: {
- name: string
- }
- Returns: string
- }
+ name: string;
+ };
+ Returns: string;
+ };
filename: {
Args: {
- name: string
- }
- Returns: string
- }
+ name: string;
+ };
+ Returns: string;
+ };
foldername: {
Args: {
- name: string
- }
- Returns: string[]
- }
+ name: string;
+ };
+ Returns: string[];
+ };
get_size_by_bucket: {
- Args: Record
+ Args: Record;
Returns: {
- size: number
- bucket_id: string
- }[]
- }
+ size: number;
+ bucket_id: string;
+ }[];
+ };
list_multipart_uploads_with_delimiter: {
Args: {
- bucket_id: string
- prefix_param: string
- delimiter_param: string
- max_keys?: number
- next_key_token?: string
- next_upload_token?: string
- }
+ bucket_id: string;
+ prefix_param: string;
+ delimiter_param: string;
+ max_keys?: number;
+ next_key_token?: string;
+ next_upload_token?: string;
+ };
Returns: {
- key: string
- id: string
- created_at: string
- }[]
- }
+ key: string;
+ id: string;
+ created_at: string;
+ }[];
+ };
list_objects_with_delimiter: {
Args: {
- bucket_id: string
- prefix_param: string
- delimiter_param: string
- max_keys?: number
- start_after?: string
- next_token?: string
- }
+ bucket_id: string;
+ prefix_param: string;
+ delimiter_param: string;
+ max_keys?: number;
+ start_after?: string;
+ next_token?: string;
+ };
Returns: {
- name: string
- id: string
- metadata: Json
- updated_at: string
- }[]
- }
+ name: string;
+ id: string;
+ metadata: Json;
+ updated_at: string;
+ }[];
+ };
search: {
Args: {
- prefix: string
- bucketname: string
- limits?: number
- levels?: number
- offsets?: number
- search?: string
- sortcolumn?: string
- sortorder?: string
- }
+ prefix: string;
+ bucketname: string;
+ limits?: number;
+ levels?: number;
+ offsets?: number;
+ search?: string;
+ sortcolumn?: string;
+ sortorder?: string;
+ };
Returns: {
- name: string
- id: string
- updated_at: string
- created_at: string
- last_accessed_at: string
- metadata: Json
- }[]
- }
- }
+ name: string;
+ id: string;
+ updated_at: string;
+ created_at: string;
+ last_accessed_at: string;
+ metadata: Json;
+ }[];
+ };
+ };
Enums: {
- [_ in never]: never
- }
+ [_ in never]: never;
+ };
CompositeTypes: {
- [_ in never]: never
- }
- }
-}
+ [_ in never]: never;
+ };
+ };
+};
-type PublicSchema = Database[Extract]
+type PublicSchema = Database[Extract];
export type Tables<
PublicTableNameOrOptions extends
- | keyof (PublicSchema["Tables"] & PublicSchema["Views"])
+ | keyof (PublicSchema['Tables'] & PublicSchema['Views'])
| { schema: keyof Database },
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
- ? keyof (Database[PublicTableNameOrOptions["schema"]]["Tables"] &
- Database[PublicTableNameOrOptions["schema"]]["Views"])
+ ? keyof (Database[PublicTableNameOrOptions['schema']]['Tables'] &
+ Database[PublicTableNameOrOptions['schema']]['Views'])
: never = never,
> = PublicTableNameOrOptions extends { schema: keyof Database }
- ? (Database[PublicTableNameOrOptions["schema"]]["Tables"] &
- Database[PublicTableNameOrOptions["schema"]]["Views"])[TableName] extends {
- Row: infer R
+ ? (Database[PublicTableNameOrOptions['schema']]['Tables'] &
+ Database[PublicTableNameOrOptions['schema']]['Views'])[TableName] extends {
+ Row: infer R;
}
? R
: never
- : PublicTableNameOrOptions extends keyof (PublicSchema["Tables"] &
- PublicSchema["Views"])
- ? (PublicSchema["Tables"] &
- PublicSchema["Views"])[PublicTableNameOrOptions] extends {
- Row: infer R
+ : PublicTableNameOrOptions extends keyof (PublicSchema['Tables'] &
+ PublicSchema['Views'])
+ ? (PublicSchema['Tables'] &
+ PublicSchema['Views'])[PublicTableNameOrOptions] extends {
+ Row: infer R;
}
? R
: never
- : never
+ : never;
export type TablesInsert<
PublicTableNameOrOptions extends
- | keyof PublicSchema["Tables"]
+ | keyof PublicSchema['Tables']
| { schema: keyof Database },
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
- ? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"]
+ ? keyof Database[PublicTableNameOrOptions['schema']]['Tables']
: never = never,
> = PublicTableNameOrOptions extends { schema: keyof Database }
- ? Database[PublicTableNameOrOptions["schema"]]["Tables"][TableName] extends {
- Insert: infer I
+ ? Database[PublicTableNameOrOptions['schema']]['Tables'][TableName] extends {
+ Insert: infer I;
}
? I
: never
- : PublicTableNameOrOptions extends keyof PublicSchema["Tables"]
- ? PublicSchema["Tables"][PublicTableNameOrOptions] extends {
- Insert: infer I
+ : PublicTableNameOrOptions extends keyof PublicSchema['Tables']
+ ? PublicSchema['Tables'][PublicTableNameOrOptions] extends {
+ Insert: infer I;
}
? I
: never
- : never
+ : never;
export type TablesUpdate<
PublicTableNameOrOptions extends
- | keyof PublicSchema["Tables"]
+ | keyof PublicSchema['Tables']
| { schema: keyof Database },
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
- ? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"]
+ ? keyof Database[PublicTableNameOrOptions['schema']]['Tables']
: never = never,
> = PublicTableNameOrOptions extends { schema: keyof Database }
- ? Database[PublicTableNameOrOptions["schema"]]["Tables"][TableName] extends {
- Update: infer U
+ ? Database[PublicTableNameOrOptions['schema']]['Tables'][TableName] extends {
+ Update: infer U;
}
? U
: never
- : PublicTableNameOrOptions extends keyof PublicSchema["Tables"]
- ? PublicSchema["Tables"][PublicTableNameOrOptions] extends {
- Update: infer U
+ : PublicTableNameOrOptions extends keyof PublicSchema['Tables']
+ ? PublicSchema['Tables'][PublicTableNameOrOptions] extends {
+ Update: infer U;
}
? U
: never
- : never
+ : never;
export type Enums<
PublicEnumNameOrOptions extends
- | keyof PublicSchema["Enums"]
+ | keyof PublicSchema['Enums']
| { schema: keyof Database },
EnumName extends PublicEnumNameOrOptions extends { schema: keyof Database }
- ? keyof Database[PublicEnumNameOrOptions["schema"]]["Enums"]
+ ? keyof Database[PublicEnumNameOrOptions['schema']]['Enums']
: never = never,
> = PublicEnumNameOrOptions extends { schema: keyof Database }
- ? Database[PublicEnumNameOrOptions["schema"]]["Enums"][EnumName]
- : PublicEnumNameOrOptions extends keyof PublicSchema["Enums"]
- ? PublicSchema["Enums"][PublicEnumNameOrOptions]
- : never
-
+ ? Database[PublicEnumNameOrOptions['schema']]['Enums'][EnumName]
+ : PublicEnumNameOrOptions extends keyof PublicSchema['Enums']
+ ? PublicSchema['Enums'][PublicEnumNameOrOptions]
+ : never;