30 lines
774 B
Go
30 lines
774 B
Go
|
|
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"`
|
||
|
|
}
|