package usecase

import "context"

// TenantUseCase manages tenant metadata.
type TenantUseCase interface {
	Create(ctx context.Context, req *CreateTenantRequest) (*TenantDTO, error)
	ResolveBySlug(ctx context.Context, slug string) (*TenantDTO, error)
}

// CreateTenantRequest creates a new tenant draft.
type CreateTenantRequest struct {
	TenantID  string
	Slug      string
	Name      string
	UIDPrefix string
}

// TenantDTO is the outward tenant shape.
type TenantDTO struct {
	TenantID  string `json:"tenant_id"`
	Slug      string `json:"slug"`
	Name      string `json:"name"`
	UIDPrefix string `json:"uid_prefix"`
	Status    string `json:"status"`
	OrgID     string `json:"org_id,omitempty"`
	CreateAt  int64  `json:"create_at"`
	UpdateAt  int64  `json:"update_at"`
}
