44 lines
1.6 KiB
Go
44 lines
1.6 KiB
Go
package domain
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
// Tenant represents a tenant (agency) in the system
|
|
type Tenant struct {
|
|
ID uuid.UUID `json:"id" db:"id"`
|
|
Name string `json:"name" db:"name"`
|
|
Domain string `json:"domain" db:"domain"`
|
|
Subdomain string `json:"subdomain" db:"subdomain"`
|
|
CNPJ string `json:"cnpj,omitempty" db:"cnpj"`
|
|
RazaoSocial string `json:"razao_social,omitempty" db:"razao_social"`
|
|
Email string `json:"email,omitempty" db:"email"`
|
|
Phone string `json:"phone,omitempty" db:"phone"`
|
|
Website string `json:"website,omitempty" db:"website"`
|
|
Address string `json:"address,omitempty" db:"address"`
|
|
City string `json:"city,omitempty" db:"city"`
|
|
State string `json:"state,omitempty" db:"state"`
|
|
Zip string `json:"zip,omitempty" db:"zip"`
|
|
Description string `json:"description,omitempty" db:"description"`
|
|
Industry string `json:"industry,omitempty" db:"industry"`
|
|
IsActive bool `json:"is_active" db:"is_active"`
|
|
CreatedAt time.Time `json:"created_at" db:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at" db:"updated_at"`
|
|
}
|
|
|
|
// CreateTenantRequest represents the request to create a new tenant
|
|
type CreateTenantRequest struct {
|
|
Name string `json:"name"`
|
|
Domain string `json:"domain"`
|
|
Subdomain string `json:"subdomain"`
|
|
}
|
|
|
|
// AgencyDetails aggregates tenant info with its admin user for superadmin view
|
|
type AgencyDetails struct {
|
|
Tenant *Tenant `json:"tenant"`
|
|
Admin *User `json:"admin,omitempty"`
|
|
AccessURL string `json:"access_url"`
|
|
}
|