Changeset 87c9f1e for prisma


Ignore:
Timestamp:
02/27/25 00:42:38 (5 weeks ago)
Author:
Naum Shapkarovski <naumshapkarovski@…>
Branches:
main
Children:
32e9876
Parents:
3c5302a
Message:

update the seed script. update the prisma schema, use mapping

Location:
prisma
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • prisma/schema.prisma

    r3c5302a r87c9f1e  
    99
    1010model Client {
    11   id              String        @id @default(uuid())
    12   tenantId        String       // Tenant identifier
    13   name            String
    14   email           String        @unique
    15   address         Json
    16   logoUrl         String?
    17   phoneNumber     String?
    18   vatNumber       String?
    19   companyNumber   String?
    20   representative  String
    21   status          CustomerStatus @default(active)
     11  id             String       @id @default(uuid())
     12  tenantId       String       @map("tenant_id")
     13  name           String
     14  email          String       @unique
     15  address        Json
     16  logoUrl        String?      @map("logo_url")
     17  phoneNumber    String?      @map("phone_number")
     18  vatNumber      String?      @map("vat_number")
     19  companyNumber  String?      @map("company_number")
     20  representative String
     21  status         ClientStatus @default(active)
     22  createdAt      DateTime     @default(now()) @map("created_at")
     23  updatedAt      DateTime     @updatedAt @map("updated_at")
    2224
    23   tenant          Tenant        @relation(fields: [tenantId], references: [id], onDelete: Cascade)
     25  tenant           Tenant    @relation(fields: [tenantId], references: [id], onDelete: Cascade)
    2426  invoicesReceived Invoice[] @relation("InvoiceTo")
    2527}
    2628
    2729model Service {
    28   id          String @id @default(uuid())
    29   name        String
    30   sprint      Float
    31   hour        Float
    32   month       Float
    33   tenantId    String
    34   tenant      Tenant  @relation(fields: [tenantId], references: [id], onDelete: Cascade)
     30  id       String @id @default(uuid())
     31  name     String
     32  sprint   Float
     33  hour     Float
     34  month    Float
     35  tenantId String @map("tenant_id")
     36  tenant   Tenant @relation(fields: [tenantId], references: [id], onDelete: Cascade)
    3537
    3638  lineItems LineItem[]
     
    3840
    3941model Invoice {
    40   id            String         @id @default(uuid())
    41   sent          Int?           // Number of times sent
    42   dueDate       DateTime
     42  id            String        @id @default(uuid())
     43  sent          Int?
     44  dueDate       DateTime      @map("due_date")
    4345  status        InvoiceStatus
    4446  currency      Currency
    45   quantityType  QuantityType
    46   subTotal      Float
    47   createDate    DateTime
     47  quantityType  QuantityType  @map("quantity_type")
     48  subTotal      Float         @map("sub_total")
     49  issueDate     DateTime      @map("issue_date")
    4850  month         Month
    4951  discount      Float?
    5052  taxes         Float?
    51   totalAmount   Float
    52   invoiceNumber String         @unique
    53   pdfRef        String?
     53  totalAmount   Float         @map("total_amount")
     54  invoiceNumber String        @unique @map("invoice_number")
     55  pdfRef        String?       @map("pdf_ref")
     56  createdAt     DateTime      @default(now()) @map("created_at")
     57  updatedAt     DateTime      @updatedAt @map("updated_at")
    5458
    55   invoiceFromId String
    56   invoiceFrom   Tenant        @relation(fields: [invoiceFromId], references: [id], onDelete: Cascade)
     59  invoiceFromId String @map("tenant_id")
     60  invoiceFrom   Tenant @relation(fields: [invoiceFromId], references: [id], onDelete: Cascade)
    5761
    58   invoiceToId   String
    59   invoiceTo     Client      @relation("InvoiceTo", fields: [invoiceToId], references: [id], onDelete: Cascade)
     62  invoiceToId String @map("client_id")
     63  invoiceTo   Client @relation("InvoiceTo", fields: [invoiceToId], references: [id], onDelete: Cascade)
    6064
    61   items         LineItem[]
     65  items LineItem[]
    6266}
    6367
    6468model LineItem {
    65   id          String   @id @default(uuid())
     69  id          String  @id @default(uuid())
    6670  title       String
    6771  price       Float
     
    6973  quantity    Int
    7074  description String?
    71   serviceId   String
    72   service     Service   @relation(fields: [serviceId], references: [id], onDelete: Cascade)
    73   invoiceId   String
    74   invoice     Invoice   @relation(fields: [invoiceId], references: [id], onDelete: Cascade)
     75  serviceId   String  @map("service_id")
     76  service     Service @relation(fields: [serviceId], references: [id], onDelete: Cascade)
     77  invoiceId   String  @map("invoice_id")
     78  invoice     Invoice @relation(fields: [invoiceId], references: [id], onDelete: Cascade)
    7579}
    7680
    7781model Tenant {
    78   id                String    @id @default(cuid())
     82  id                String     @id @default(cuid())
    7983  name              String
    80   email             String    @unique
    81   address           Json     
    82   bankAccounts      Json?     
    83   logoUrl           String?
    84   phoneNumber       String?
    85   vatNumber         String?
    86   companyNumber     String?
     84  email             String     @unique
     85  address           Json
     86  bankAccounts      Json?      @map("bank_accounts")
     87  logoUrl           String?    @map("logo_url")
     88  phoneNumber       String?    @map("phone_number")
     89  vatNumber         String?    @map("vat_number")
     90  companyNumber     String?    @map("company_number")
    8791  representative    String
    88   lastInvoiceNumber String    @default("0")
    89   createdAt         DateTime  @default(now())
    90   updatedAt         DateTime  @updatedAt
     92  lastInvoiceNumber String     @default("0") @map("last_invoice_number")
     93  createdAt         DateTime   @default(now()) @map("created_at")
     94  updatedAt         DateTime   @updatedAt @map("updated_at")
    9195  invoicesSent      Invoice[]
    9296  services          Service[]
    9397  employees         Employee[]
    94   clients           Client[]  // Add the relation to clients
     98  clients           Client[]
     99  users             User[]
    95100}
    96101
    97102model Employee {
    98   id          String         @id @default(uuid())
    99   name        String
    100   email       String         @unique
    101   status      EmployeeStatus @default(active)
    102   iban        String?
    103   cv          String?
    104   photo       String?
    105   project     String?
    106   tenantId    String
    107   tenant      Tenant         @relation(fields: [tenantId], references: [id], onDelete: Cascade)
     103  id        String         @id @default(uuid())
     104  name      String
     105  email     String         @unique
     106  status    EmployeeStatus @default(active)
     107  iban      String?
     108  cv        String?
     109  photo     String?
     110  project   String?
     111  tenantId  String         @map("tenant_id")
     112  tenant    Tenant         @relation(fields: [tenantId], references: [id], onDelete: Cascade)
     113  createdAt DateTime       @default(now()) @map("created_at")
     114  updatedAt DateTime       @updatedAt @map("updated_at")
    108115}
    109116
    110 // Enums
    111 enum CustomerStatus {
    112   active
    113   banned
    114   inactive
     117model User {
     118  id          String   @id @default(uuid())
     119  uid         String   @unique // Firebase UID
     120  email       String   @unique
     121  displayName String   @map("display_name")
     122  role        UserRole
     123  tenantId    String   @map("tenant_id")
     124  tenant      Tenant   @relation(fields: [tenantId], references: [id], onDelete: Cascade)
     125  createdAt   DateTime @default(now()) @map("created_at")
     126  updatedAt   DateTime @updatedAt @map("updated_at")
     127}
     128
     129enum UserRole {
     130  ADMIN   @map("ADMIN")
     131  MANAGER @map("MANAGER")
     132  USER    @map("USER")
     133}
     134
     135enum ClientStatus {
     136  active   @map("ACTIVE")
     137  banned   @map("BANNED")
     138  inactive @map("INACTIVE")
    115139}
    116140
    117141enum InvoiceStatus {
    118   draft
    119   processing
    120   pending
    121   overdue
    122   paid
     142  draft      @map("DRAFT")
     143  processing @map("PROCESSING")
     144  pending    @map("PENDING")
     145  overdue    @map("OVERDUE")
     146  paid       @map("PAID")
    123147}
    124148
    125149enum Currency {
    126   EUR
    127   USD
     150  EUR @map("EUR")
     151  USD @map("USD")
    128152}
    129153
    130154enum QuantityType {
    131   Unit
    132   Hour
    133   Sprint
    134   Month
     155  Unit   @map("UNIT")
     156  Hour   @map("HOUR")
     157  Sprint @map("SPRINT")
     158  Month  @map("MONTH")
    135159}
    136160
    137161enum Month {
    138   January
    139   February
    140   March
    141   April
    142   May
    143   June
    144   July
    145   August
    146   September
    147   October
    148   November
    149   December
     162  January   @map("JANUARY")
     163  February  @map("FEBRUARY")
     164  March     @map("MARCH")
     165  April     @map("APRIL")
     166  May       @map("MAY")
     167  June      @map("JUNE")
     168  July      @map("JULY")
     169  August    @map("AUGUST")
     170  September @map("SEPTEMBER")
     171  October   @map("OCTOBER")
     172  November  @map("NOVEMBER")
     173  December  @map("DECEMBER")
    150174}
    151175
    152176enum EmployeeStatus {
    153   active
    154   inactive
     177  active   @map("ACTIVE")
     178  inactive @map("INACTIVE")
    155179}
  • prisma/seed.js

    r3c5302a r87c9f1e  
    66  // Clear existing data
    77  await prisma.service.deleteMany();
     8  await prisma.user.deleteMany();
    89  await prisma.tenant.deleteMany();
    910
    1011  // Define default tenant data
    1112  const tenantData = {
    12     name: "Default Company",
    13     email: "contact@defaultcompany.com",
     13    id: "cm7lxc3p00000pb7kmdrxsfod",
     14    name: "MVP Masters",
     15    email: "info@mvpmasters.com",
    1416    address: {
    15       street: "123 Business Street",
    16       city: "Business City",
    17       state: "BS",
    18       zip: "12345",
    19       country: "United States"
     17      street: "Makedonska Treta Brigada 56",
     18      city: "Skopje",
     19      state: "Macedonia",
     20      zip: "1000",
     21      country: "Macedonia"
    2022    },
    21     phoneNumber: "+1 234 567 8900",
    22     representative: "John Doe",
     23    phoneNumber: "+389 72 233 943",
     24    representative: "Naum Shapkarovski",
    2325    lastInvoiceNumber: "1",
    2426    logoUrl: "https://example.com/default-logo.png",
     
    7274  });
    7375
     76  // Add default admin user
     77  const defaultUser = await prisma.user.create({
     78    data: {
     79      id: 'dK2y3WezYWWltHCaBRvUFlddkOr2',
     80      uid: 'dK2y3WezYWWltHCaBRvUFlddkOr2',
     81      email: 'naum@mvpmasters.com',
     82      displayName: 'Naum',
     83      role: 'ADMIN',
     84      tenantId: 'cm7lxc3p00000pb7kmdrxsfod'
     85    }
     86  });
     87
    7488  console.log('Seeded default tenant:', defaultTenant);
     89  console.log('Seeded default user:', defaultUser);
    7590
    7691  console.log('🌱 Seeding database...');
Note: See TracChangeset for help on using the changeset viewer.