- Addition of a tenant_partner_services view to show partner services from the viewpoint of a tenant - Addition of domain model diagrams - Addition of license_periods views and form
244 lines
6.5 KiB
Plaintext
244 lines
6.5 KiB
Plaintext
erDiagram
|
|
BUSINESS_EVENT_LOG {
|
|
int id PK
|
|
datetime timestamp
|
|
string event_type
|
|
int tenant_id
|
|
string trace_id
|
|
string span_id
|
|
string span_name
|
|
string parent_span_id
|
|
int document_version_id
|
|
float document_version_file_size
|
|
int specialist_id
|
|
string specialist_type
|
|
string specialist_type_version
|
|
string chat_session_id
|
|
int interaction_id
|
|
string environment
|
|
int llm_metrics_total_tokens
|
|
int llm_metrics_prompt_tokens
|
|
int llm_metrics_completion_tokens
|
|
float llm_metrics_total_time
|
|
int llm_metrics_nr_of_pages
|
|
int llm_metrics_call_count
|
|
string llm_interaction_type
|
|
text message
|
|
int license_usage_id FK
|
|
}
|
|
|
|
LICENSE {
|
|
int id PK
|
|
int tenant_id FK
|
|
int tier_id FK
|
|
date start_date
|
|
date end_date
|
|
int nr_of_periods
|
|
string currency
|
|
boolean yearly_payment
|
|
float basic_fee
|
|
int max_storage_mb
|
|
float additional_storage_price
|
|
int additional_storage_bucket
|
|
int included_embedding_mb
|
|
decimal additional_embedding_price
|
|
int additional_embedding_bucket
|
|
int included_interaction_tokens
|
|
decimal additional_interaction_token_price
|
|
int additional_interaction_bucket
|
|
float overage_embedding
|
|
float overage_interaction
|
|
boolean additional_storage_allowed
|
|
boolean additional_embedding_allowed
|
|
boolean additional_interaction_allowed
|
|
datetime created_at
|
|
int created_by FK
|
|
datetime updated_at
|
|
int updated_by FK
|
|
}
|
|
|
|
LICENSE_TIER {
|
|
int id PK
|
|
string name
|
|
string version
|
|
date start_date
|
|
date end_date
|
|
float basic_fee_d
|
|
float basic_fee_e
|
|
int max_storage_mb
|
|
decimal additional_storage_price_d
|
|
decimal additional_storage_price_e
|
|
int additional_storage_bucket
|
|
int included_embedding_mb
|
|
decimal additional_embedding_price_d
|
|
decimal additional_embedding_price_e
|
|
int additional_embedding_bucket
|
|
int included_interaction_tokens
|
|
decimal additional_interaction_token_price_d
|
|
decimal additional_interaction_token_price_e
|
|
int additional_interaction_bucket
|
|
float standard_overage_embedding
|
|
float standard_overage_interaction
|
|
datetime created_at
|
|
int created_by FK
|
|
datetime updated_at
|
|
int updated_by FK
|
|
}
|
|
|
|
PARTNER_SERVICE_LICENSE_TIER {
|
|
int partner_service_id PK,FK
|
|
int license_tier_id PK,FK
|
|
datetime created_at
|
|
int created_by FK
|
|
datetime updated_at
|
|
int updated_by FK
|
|
}
|
|
|
|
LICENSE_PERIOD {
|
|
int id PK
|
|
int license_id FK
|
|
int tenant_id FK
|
|
int period_number
|
|
date period_start
|
|
date period_end
|
|
string currency
|
|
float basic_fee
|
|
int max_storage_mb
|
|
float additional_storage_price
|
|
int additional_storage_bucket
|
|
int included_embedding_mb
|
|
decimal additional_embedding_price
|
|
int additional_embedding_bucket
|
|
int included_interaction_tokens
|
|
decimal additional_interaction_token_price
|
|
int additional_interaction_bucket
|
|
boolean additional_storage_allowed
|
|
boolean additional_embedding_allowed
|
|
boolean additional_interaction_allowed
|
|
enum status
|
|
datetime upcoming_at
|
|
datetime pending_at
|
|
datetime active_at
|
|
datetime completed_at
|
|
datetime invoiced_at
|
|
datetime closed_at
|
|
datetime created_at
|
|
int created_by FK
|
|
datetime updated_at
|
|
int updated_by FK
|
|
}
|
|
|
|
LICENSE_USAGE {
|
|
int id PK
|
|
int tenant_id FK
|
|
float storage_mb_used
|
|
float embedding_mb_used
|
|
int embedding_prompt_tokens_used
|
|
int embedding_completion_tokens_used
|
|
int embedding_total_tokens_used
|
|
int interaction_prompt_tokens_used
|
|
int interaction_completion_tokens_used
|
|
int interaction_total_tokens_used
|
|
int license_period_id FK
|
|
datetime created_at
|
|
int created_by FK
|
|
datetime updated_at
|
|
int updated_by FK
|
|
}
|
|
|
|
PAYMENT {
|
|
int id PK
|
|
int license_period_id FK
|
|
int tenant_id FK
|
|
enum payment_type
|
|
decimal amount
|
|
string currency
|
|
text description
|
|
enum status
|
|
string external_payment_id
|
|
string payment_method
|
|
jsonb provider_data
|
|
datetime paid_at
|
|
datetime created_at
|
|
int created_by FK
|
|
datetime updated_at
|
|
int updated_by FK
|
|
}
|
|
|
|
INVOICE {
|
|
int id PK
|
|
int license_period_id FK
|
|
int payment_id FK
|
|
int tenant_id FK
|
|
enum invoice_type
|
|
string invoice_number
|
|
date invoice_date
|
|
date due_date
|
|
decimal amount
|
|
string currency
|
|
decimal tax_amount
|
|
text description
|
|
enum status
|
|
datetime sent_at
|
|
datetime paid_at
|
|
datetime created_at
|
|
int created_by FK
|
|
datetime updated_at
|
|
int updated_by FK
|
|
}
|
|
|
|
LICENSE_CHANGE_LOG {
|
|
int id PK
|
|
int license_id FK
|
|
datetime changed_at
|
|
string field_name
|
|
string old_value
|
|
string new_value
|
|
text reason
|
|
int created_by FK
|
|
}
|
|
|
|
TENANT {
|
|
int id PK
|
|
string name
|
|
string currency
|
|
}
|
|
|
|
USER {
|
|
int id PK
|
|
string user_name
|
|
string email
|
|
}
|
|
|
|
PARTNER_SERVICE {
|
|
int id PK
|
|
string name
|
|
string type
|
|
}
|
|
|
|
%% Main business relationships
|
|
TENANT ||--o{ LICENSE : "has many"
|
|
LICENSE_TIER ||--o{ LICENSE : "has many"
|
|
LICENSE ||--o{ LICENSE_PERIOD : "has many"
|
|
LICENSE_PERIOD ||--|| LICENSE_USAGE : "has one"
|
|
LICENSE_PERIOD ||--o{ PAYMENT : "has many"
|
|
LICENSE_PERIOD ||--o{ INVOICE : "has many"
|
|
|
|
%% License management
|
|
LICENSE ||--o{ LICENSE_CHANGE_LOG : "has many"
|
|
|
|
%% Payment-Invoice relationship
|
|
PAYMENT ||--o| INVOICE : "can have"
|
|
|
|
%% Partner service licensing
|
|
PARTNER_SERVICE ||--o{ PARTNER_SERVICE_LICENSE_TIER : "has many"
|
|
LICENSE_TIER ||--o{ PARTNER_SERVICE_LICENSE_TIER : "has many"
|
|
|
|
%% Event logging
|
|
LICENSE_USAGE ||--o{ BUSINESS_EVENT_LOG : "has many"
|
|
|
|
%% Tenant relationships
|
|
TENANT ||--o{ LICENSE_PERIOD : "has many"
|
|
TENANT ||--o{ LICENSE_USAGE : "has many"
|
|
TENANT ||--o{ PAYMENT : "has many"
|
|
TENANT ||--o{ INVOICE : "has many" |