Data Models
Designs dos dados do App
erDiagram TENANT ||--o{ PRODUCT :has TENANT ||--o{ SHOP :has TENANT ||--o{ SERVICE :has TENANT ||--o{ USER :has SHOP ||--o{ CAIXA :has CAIXA ||--o{ COMANDA :has COMANDA ||--o{ COMANDA_ITEM :has COMANDA ||--o{ COMANDA_PAYMENT :has SHOP ||--o{ INVOICE :has INVOICE ||--o{ INVOICE_ITEM :has SHOP ||--o{ BOOKING :has USER ||--o{ USER_SERVICES :has TENANT { integer id PK "Tenant Identifier" string subdomain "Subdomain" string logo "Path containing logo" } SUPERADMIN { integer id PK string email string password } SHOP { integer id PK integer tenantId FK } PRODUCT { integer id PK integer tenantId FK string name "Product name" } SERVICE { integer id PK integer tenantId FK double price integer duration "Service duration time" } USER { integer id PK integer tenantId FK } USER_SERVICES { integer id PK integer tenantId FK integer userId FK "User ID" integer serviceId FK "Service ID" double price "Service value" integer duration "Service duration time" } INVOICE { integer id PK integer tenantId FK shopId id FK "Shop ID" } INVOICE_ITEM { integer id PK integer tenantId FK integer invoiceId FK } BOOKING { integer id PK integer tenantId FK integer shopId FK integer userId FK integer serviceId FK date date time startTime time endTime } CAIXA { integer id PK integer tenantId FK integer shopId FK datetime open_at "Data de abertura" datetime closed_at "Data do fechamento" } COMANDA { integer id PK integer tenantId FK integer shopId FK integer caixaId FK double total "Valor total da comanda" } COMANDA_ITEM { integer id PK integer comandaId FK double price "Valor do item" } COMANDA_PAYMENT { integer id PK integer comandaId FK double value "Valor do pagamento" }