package models

import (
	"encoding/json"
	"time"

	"github.com/google/uuid"
)

type Tenant struct {
	ID        uuid.UUID       `db:"id" json:"id"`
	Name      string          `db:"name" json:"name"`
	Slug      string          `db:"slug" json:"slug"`
	Settings  json.RawMessage `db:"settings" json:"settings"`
	CreatedAt time.Time       `db:"created_at" json:"created_at"`
	UpdatedAt time.Time       `db:"updated_at" json:"updated_at"`
}

type UserTenant struct {
	UserID    uuid.UUID `db:"user_id" json:"user_id"`
	TenantID  uuid.UUID `db:"tenant_id" json:"tenant_id"`
	Role      string    `db:"role" json:"role"`
	Email     string    `db:"email" json:"email"`
	CreatedAt time.Time `db:"created_at" json:"created_at"`
}

// TenantWithRole is a Tenant joined with the user's role in that tenant.
type TenantWithRole struct {
	Tenant
	Role string `db:"role" json:"role"`
}
