Files
geo/server/internal/tenant/repository/generated/models.go
T
root de30497f59 feat: add tenant and user management with migrations, handlers, and tests
- Implemented tenant and user management features including:
  - Tenant creation and management with associated migrations.
  - User creation and management with associated migrations.
  - Tenant membership management with associated migrations.
  - Platform user roles management with associated migrations.
  - Quota management with associated migrations.
  - Article and template management with associated migrations.
- Added HTTP handlers for templates and workspaces.
- Created tests for protected and public routes.
- Introduced a script to check tenant scope in SQL queries.
- Documented task plan for backend completion and frontend foundation.
2026-04-01 00:58:42 +08:00

248 lines
10 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
package generated
import (
"github.com/jackc/pgx/v5/pgtype"
)
type Article struct {
ID int64 `json:"id"`
TenantID int64 `json:"tenant_id"`
SourceType string `json:"source_type"`
TemplateID pgtype.Int8 `json:"template_id"`
PromptRuleID pgtype.Int8 `json:"prompt_rule_id"`
CurrentVersionID pgtype.Int8 `json:"current_version_id"`
GenerateStatus string `json:"generate_status"`
PublishStatus string `json:"publish_status"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
DeletedAt pgtype.Timestamptz `json:"deleted_at"`
}
type ArticleTemplate struct {
ID int64 `json:"id"`
Scope string `json:"scope"`
TenantID pgtype.Int8 `json:"tenant_id"`
OriginType string `json:"origin_type"`
ShareCodeID pgtype.Int8 `json:"share_code_id"`
TemplateKey string `json:"template_key"`
TemplateName string `json:"template_name"`
SchemaJson []byte `json:"schema_json"`
PromptTemplate pgtype.Text `json:"prompt_template"`
PromptVisibility string `json:"prompt_visibility"`
ProtectedPromptAssetKey pgtype.Text `json:"protected_prompt_asset_key"`
CardConfigJson []byte `json:"card_config_json"`
Status string `json:"status"`
VersionNo int32 `json:"version_no"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
DeletedAt pgtype.Timestamptz `json:"deleted_at"`
}
type ArticleVersion struct {
ID int64 `json:"id"`
ArticleID int64 `json:"article_id"`
VersionNo int32 `json:"version_no"`
Title pgtype.Text `json:"title"`
HtmlContent pgtype.Text `json:"html_content"`
MarkdownContent pgtype.Text `json:"markdown_content"`
WordCount int32 `json:"word_count"`
SourceLabel pgtype.Text `json:"source_label"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
}
type AuditLog struct {
ID int64 `json:"id"`
OperatorID int64 `json:"operator_id"`
TenantID pgtype.Int8 `json:"tenant_id"`
Module string `json:"module"`
Action string `json:"action"`
BeforeJson []byte `json:"before_json"`
AfterJson []byte `json:"after_json"`
Result pgtype.Text `json:"result"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
}
type Brand struct {
ID int64 `json:"id"`
TenantID int64 `json:"tenant_id"`
Name string `json:"name"`
Description pgtype.Text `json:"description"`
Status string `json:"status"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
DeletedAt pgtype.Timestamptz `json:"deleted_at"`
}
type BrandKeyword struct {
ID int64 `json:"id"`
TenantID int64 `json:"tenant_id"`
BrandID int64 `json:"brand_id"`
Name string `json:"name"`
Status string `json:"status"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
DeletedAt pgtype.Timestamptz `json:"deleted_at"`
}
type BrandQuestion struct {
ID int64 `json:"id"`
TenantID int64 `json:"tenant_id"`
BrandID int64 `json:"brand_id"`
KeywordID int64 `json:"keyword_id"`
CurrentVersionID pgtype.Int8 `json:"current_version_id"`
Status string `json:"status"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
DeletedAt pgtype.Timestamptz `json:"deleted_at"`
}
type BrandQuestionVersion struct {
ID int64 `json:"id"`
QuestionID int64 `json:"question_id"`
QuestionText string `json:"question_text"`
QuestionHash string `json:"question_hash"`
VersionNo int32 `json:"version_no"`
IsActive bool `json:"is_active"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
}
type Competitor struct {
ID int64 `json:"id"`
TenantID int64 `json:"tenant_id"`
BrandID int64 `json:"brand_id"`
Name string `json:"name"`
Website pgtype.Text `json:"website"`
Description pgtype.Text `json:"description"`
ProductLinesJson []byte `json:"product_lines_json"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
DeletedAt pgtype.Timestamptz `json:"deleted_at"`
}
type GenerationTask struct {
ID int64 `json:"id"`
TenantID int64 `json:"tenant_id"`
ArticleID pgtype.Int8 `json:"article_id"`
TaskBatchID pgtype.Text `json:"task_batch_id"`
QuotaReservationID pgtype.Int8 `json:"quota_reservation_id"`
TaskType string `json:"task_type"`
RequestHash pgtype.Text `json:"request_hash"`
InputParamsJson []byte `json:"input_params_json"`
Status string `json:"status"`
ErrorMessage pgtype.Text `json:"error_message"`
StartedAt pgtype.Timestamptz `json:"started_at"`
CompletedAt pgtype.Timestamptz `json:"completed_at"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
}
type Plan struct {
ID int64 `json:"id"`
PlanCode string `json:"plan_code"`
Name string `json:"name"`
QuotaPolicyJson []byte `json:"quota_policy_json"`
Status string `json:"status"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
DeletedAt pgtype.Timestamptz `json:"deleted_at"`
}
type PlatformUserRole struct {
ID int64 `json:"id"`
UserID int64 `json:"user_id"`
PlatformRole string `json:"platform_role"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
DeletedAt pgtype.Timestamptz `json:"deleted_at"`
}
type QuotaReservation struct {
ID int64 `json:"id"`
TenantID int64 `json:"tenant_id"`
QuotaType string `json:"quota_type"`
ResourceType string `json:"resource_type"`
ResourceID int64 `json:"resource_id"`
ReservedAmount int32 `json:"reserved_amount"`
ConsumedAmount int32 `json:"consumed_amount"`
RefundedAmount int32 `json:"refunded_amount"`
Status string `json:"status"`
ExpireAt pgtype.Timestamptz `json:"expire_at"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
}
type TaskRecord struct {
ID int64 `json:"id"`
TenantID int64 `json:"tenant_id"`
TaskType string `json:"task_type"`
ResourceType string `json:"resource_type"`
ResourceID int64 `json:"resource_id"`
Status string `json:"status"`
RetryCount int32 `json:"retry_count"`
TaskBatchID pgtype.Text `json:"task_batch_id"`
ErrorMessage pgtype.Text `json:"error_message"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
}
type Tenant struct {
ID int64 `json:"id"`
Name string `json:"name"`
Status string `json:"status"`
FrozenAt pgtype.Timestamptz `json:"frozen_at"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
DeletedAt pgtype.Timestamptz `json:"deleted_at"`
}
type TenantMembership struct {
ID int64 `json:"id"`
TenantID int64 `json:"tenant_id"`
UserID int64 `json:"user_id"`
TenantRole string `json:"tenant_role"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
DeletedAt pgtype.Timestamptz `json:"deleted_at"`
}
type TenantPlanSubscription struct {
ID int64 `json:"id"`
TenantID int64 `json:"tenant_id"`
PlanID int64 `json:"plan_id"`
StartAt pgtype.Timestamptz `json:"start_at"`
EndAt pgtype.Timestamptz `json:"end_at"`
Status string `json:"status"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
DeletedAt pgtype.Timestamptz `json:"deleted_at"`
}
type TenantQuotaLedger struct {
ID int64 `json:"id"`
TenantID int64 `json:"tenant_id"`
QuotaType string `json:"quota_type"`
Delta int32 `json:"delta"`
BalanceAfter int32 `json:"balance_after"`
Reason pgtype.Text `json:"reason"`
ReferenceType pgtype.Text `json:"reference_type"`
ReferenceID pgtype.Int8 `json:"reference_id"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
}
type User struct {
ID int64 `json:"id"`
Email string `json:"email"`
Phone pgtype.Text `json:"phone"`
PasswordHash string `json:"password_hash"`
Name string `json:"name"`
AvatarUrl pgtype.Text `json:"avatar_url"`
Status string `json:"status"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
DeletedAt pgtype.Timestamptz `json:"deleted_at"`
}