generator client { provider = "prisma-client-js" } datasource db { provider = "postgresql" url = env("DATABASE_URL") } model billing_account { id String @id(map: "billing_account_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid id_organization String @db.Uuid user_created String @db.Uuid payment_info Json? payment_method String is_default Boolean created_at DateTime @default(now()) @db.Timestamp(6) updated_at DateTime @default(now()) @db.Timestamp(6) org org @relation(fields: [id_organization], references: [id], onDelete: NoAction, onUpdate: NoAction) user user @relation(fields: [user_created], references: [id], onDelete: NoAction, onUpdate: NoAction) } model component { id String @id(map: "component_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String content_tree Json created_at DateTime? @default(now()) @db.Timestamp(6) updated_at DateTime? @default(now()) @db.Timestamp(6) type String @default("item") id_component_group String? @db.Uuid props Json @default("[]") component_group component_group? @relation(fields: [id_component_group], references: [id], onDelete: Cascade) } model component_group { id String @id(map: "site_comp_group_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String shared Boolean @default(false) code_assign code_assign[] component component[] component_site component_site[] } model component_site { id_component_group String @db.Uuid id_site String @db.Uuid is_owner Boolean @default(true) component_group component_group @relation(fields: [id_component_group], references: [id], onDelete: Cascade) site site @relation(fields: [id_site], references: [id], onDelete: Cascade) @@id([id_component_group, id_site], map: "component_site_id_component_group_id_site") } model discount { id String @id(map: "discount_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String code String @unique(map: "discount_code") date_start DateTime @db.Timestamp(6) date_end DateTime @db.Timestamp(6) price Decimal? @db.Decimal(18, 3) percent Float? @db.Real max_precent Float? @db.Real description String? invoice_item invoice_item[] } model feature { id String @id(map: "feature_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid feature Json? price Decimal @db.Decimal(18, 3) created_at DateTime? @default(now()) @db.Timestamp(6) updated_at DateTime? @default(now()) @db.Timestamp(6) name String trial_duration Int? subscribe_duration Int? invoice_item invoice_item[] } model invoice { id String @id(map: "invoice_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid code String user_id String @db.Uuid status String total Decimal @default(0) @db.Decimal(18, 3) due_date DateTime? @default(now()) @db.Timestamp(6) created_at DateTime? @default(now()) @db.Timestamp(6) updated_at DateTime? @default(now()) @db.Timestamp(6) user user @relation(fields: [user_id], references: [id], onDelete: NoAction, onUpdate: NoAction) invoice_item invoice_item[] payment payment[] } model invoice_item { id String @id(map: "invoice_item_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid invoice_id String @db.Uuid feature_id String @db.Uuid discount_id String? @db.Uuid price Decimal @default(0) @db.Decimal(18, 3) discount_val Decimal @default(0) @db.Decimal(18, 3) created_at DateTime? @default(now()) @db.Timestamp(6) discount discount? @relation(fields: [discount_id], references: [id], onDelete: NoAction, onUpdate: NoAction) feature feature @relation(fields: [feature_id], references: [id], onDelete: NoAction, onUpdate: NoAction) invoice invoice @relation(fields: [invoice_id], references: [id], onDelete: NoAction, onUpdate: NoAction) } model npm_page { id BigInt @id @default(autoincrement()) id_page String @db.Uuid module String version String types Boolean @default(false) bundled Boolean @default(false) import_as Json @default("{\"main\": {\"mode\": \"default\", \"name\": \"\"}, \"names\": []}") } model npm_site { id BigInt @id @default(autoincrement()) id_site String @db.Uuid module String version String types Boolean @default(false) bundled Boolean @default(false) import_as Json @default("{\"main\": {\"mode\": \"default\", \"name\": \"\"}, \"names\": []}") site site @relation(fields: [id_site], references: [id], onDelete: NoAction, onUpdate: NoAction) } model org { id String @id(map: "organization_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String created_at DateTime? @default(now()) @db.Timestamp(6) updated_at DateTime? @db.Timestamp(6) created_by String? @db.Uuid billing_account billing_account[] user user? @relation(fields: [created_by], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "organization_user_created_fkey") org_user org_user[] site site[] } model org_user { id Int @id @default(autoincrement()) id_org String @db.Uuid id_user String @db.Uuid role String @default("member") org org @relation(fields: [id_org], references: [id], onDelete: NoAction, onUpdate: NoAction) user user @relation(fields: [id_user], references: [id], onDelete: NoAction, onUpdate: NoAction) } model page { id String @id(map: "page_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String url String content_tree Json id_site String @db.Uuid created_at DateTime? @default(now()) @db.Timestamp(6) js_compiled String? js String? updated_at DateTime? @default(now()) @db.Timestamp(6) id_folder String? @db.Uuid is_deleted Boolean @default(false) id_layout String? @db.Uuid is_default_layout Boolean @default(false) code_assign code_assign[] page_folder page_folder? @relation(fields: [id_folder], references: [id], onDelete: NoAction, onUpdate: NoAction) page page? @relation("pageTopage", fields: [id_layout], references: [id], onDelete: NoAction, onUpdate: NoAction) other_page page[] @relation("pageTopage") site site @relation(fields: [id_site], references: [id], onDelete: NoAction, onUpdate: NoAction) } model page_folder { id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String? parent_id String? @db.Uuid id_site String @db.Uuid is_deleted Boolean @default(false) page page[] site site @relation(fields: [id_site], references: [id], onDelete: NoAction, onUpdate: NoAction) } model payment { id String @id(map: "payment_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid nominal Decimal @default(0) @db.Decimal(18, 3) id_invoice String @db.Uuid type String? @db.VarChar(10) payment_method String @default("CC") @db.VarChar(30) payment_method_detail Json? status String payment_date DateTime? @db.Timestamp(6) expired_date DateTime @db.Timestamp(6) description String created_at DateTime? @default(now()) @db.Timestamp(6) updated_at DateTime? @default(now()) @db.Timestamp(6) invoice invoice @relation(fields: [id_invoice], references: [id], onDelete: NoAction, onUpdate: NoAction) payment_history payment_history[] } model payment_history { id String @id(map: "payment_history_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid payment_id String @db.Uuid status String created_at DateTime? @default(now()) @db.Timestamp(6) payment payment @relation(fields: [payment_id], references: [id], onDelete: NoAction, onUpdate: NoAction) } model plugin { id String @id(map: "plugin_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String desc String init_script String? @default("") site_plugin site_plugin[] } model site { id String @id(map: "site_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String favicon String domain String @unique(map: "site_domain") id_user String @db.Uuid created_at DateTime? @default(now()) @db.Timestamp(6) id_org String? @db.Uuid updated_at DateTime? @default(now()) @db.Timestamp(6) js String? @default("") css String? @default("") js_compiled String? @default("") config Json @default("{}") is_deleted Boolean @default(false) responsive String @default("all") npm_cache String @default(" ") @db.VarChar code code[] component_site component_site[] npm_site npm_site[] page page[] page_folder page_folder[] org org? @relation(fields: [id_org], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "site_id_organization_fkey") user user @relation(fields: [id_user], references: [id], onDelete: NoAction, onUpdate: NoAction) site_plugin site_plugin[] site_query site_query[] } model site_plugin { id_site String @db.Uuid id_plugin String @db.Uuid config Json plugin plugin @relation(fields: [id_plugin], references: [id], onDelete: NoAction, onUpdate: NoAction) site site @relation(fields: [id_site], references: [id], onDelete: NoAction, onUpdate: NoAction) @@id([id_site, id_plugin], map: "id_site_plugin") } model site_query { id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid id_site String? @db.Uuid name String? query String? site site? @relation(fields: [id_site], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "site") } model site_use_comp { id_site String @db.Uuid use_id_site String @db.Uuid @@id([id_site, use_id_site]) } model user { id String @id(map: "user_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid username String @unique(map: "user_username") password String phone String email String created_at DateTime? @default(now()) @db.Timestamp(6) token_reset_password String? token_reset_password_expired DateTime? @db.Timestamp(6) updated_at DateTime? @default(now()) @db.Timestamp(6) nominal_deposit Decimal @default(0) @db.Decimal(18, 3) billing_account billing_account[] invoice invoice[] org org[] org_user org_user[] site site[] } model code { id String @id(map: "code_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid id_site String @db.Uuid name String @default("site") site site @relation(fields: [id_site], references: [id], onDelete: Cascade, onUpdate: NoAction) code_assign code_assign[] code_file code_file[] } model code_file { path String content String id_code String @db.Uuid code code @relation(fields: [id_code], references: [id], onDelete: Cascade, onUpdate: NoAction) @@id([path, id_code], map: "id_code_file") } model code_assign { id_code String @db.Uuid id_component_group String? @db.Uuid id_page String? @db.Uuid id String @id(map: "code_assign_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid code code @relation(fields: [id_code], references: [id], onDelete: Cascade, onUpdate: NoAction) component_group component_group? @relation(fields: [id_component_group], references: [id], onDelete: NoAction, onUpdate: NoAction) page page? @relation(fields: [id_page], references: [id], onDelete: NoAction, onUpdate: NoAction) }