draft
This commit is contained in:
59
backend/internal/model/merchant.go
Normal file
59
backend/internal/model/merchant.go
Normal file
@@ -0,0 +1,59 @@
|
||||
package model
|
||||
|
||||
import "time"
|
||||
|
||||
// MerchantStatus 商户状态
|
||||
type MerchantStatus string
|
||||
|
||||
const (
|
||||
MerchantStatusPending MerchantStatus = "PENDING"
|
||||
MerchantStatusActive MerchantStatus = "ACTIVE"
|
||||
MerchantStatusFrozen MerchantStatus = "FROZEN"
|
||||
MerchantStatusRejected MerchantStatus = "REJECTED"
|
||||
)
|
||||
|
||||
// AuditStatus 进件审核状态
|
||||
type AuditStatus string
|
||||
|
||||
const (
|
||||
AuditStatusSubmitting AuditStatus = "SUBMITTING"
|
||||
AuditStatusReviewing AuditStatus = "REVIEWING"
|
||||
AuditStatusApproved AuditStatus = "APPROVED"
|
||||
AuditStatusRejected AuditStatus = "REJECTED"
|
||||
)
|
||||
|
||||
// Merchant 商户
|
||||
type Merchant struct {
|
||||
ID uint64 `gorm:"column:id;primaryKey;autoIncrement"`
|
||||
MerchantID string `gorm:"column:merchant_id;uniqueIndex;size:32;not null"`
|
||||
AppID string `gorm:"column:app_id;size:32;not null;default:'';index"`
|
||||
MerchantName string `gorm:"column:merchant_name;size:128;not null"`
|
||||
LicenseNo string `gorm:"column:license_no;size:64"`
|
||||
LegalPerson string `gorm:"column:legal_person;size:64"`
|
||||
BankAccount string `gorm:"column:bank_account;size:64"` // 脱敏
|
||||
ChannelMerchantID string `gorm:"column:channel_merchant_id;size:64"`
|
||||
Status MerchantStatus `gorm:"column:status;size:20;not null;default:PENDING;index"`
|
||||
CreatedAt time.Time `gorm:"column:created_at;autoCreateTime:milli"`
|
||||
UpdatedAt time.Time `gorm:"column:updated_at;autoUpdateTime:milli"`
|
||||
}
|
||||
|
||||
func (Merchant) TableName() string { return "merchant" }
|
||||
|
||||
// MerchantApplication 商户进件申请
|
||||
// 一条记录对应一个商户在一个渠道的进件,(merchant_id, channel_code) 唯一
|
||||
type MerchantApplication struct {
|
||||
ID uint64 `gorm:"column:id;primaryKey;autoIncrement"`
|
||||
ApplicationID string `gorm:"column:application_id;uniqueIndex;size:32;not null"`
|
||||
MerchantID string `gorm:"column:merchant_id;size:32;not null;index"`
|
||||
ChannelCode string `gorm:"column:channel_code;size:32;not null"`
|
||||
ChannelMerchantID string `gorm:"column:channel_merchant_id;size:64;not null;default:''"`
|
||||
SubmitData JSONMap `gorm:"column:submit_data;type:json"`
|
||||
AuditStatus AuditStatus `gorm:"column:audit_status;size:20;not null;default:SUBMITTING"`
|
||||
RejectReason string `gorm:"column:reject_reason;size:512"`
|
||||
SubmittedAt time.Time `gorm:"column:submitted_at"`
|
||||
AuditedAt *time.Time `gorm:"column:audited_at"`
|
||||
CreatedAt time.Time `gorm:"column:created_at;autoCreateTime:milli"`
|
||||
UpdatedAt time.Time `gorm:"column:updated_at;autoUpdateTime:milli"`
|
||||
}
|
||||
|
||||
func (MerchantApplication) TableName() string { return "merchant_application" }
|
||||
Reference in New Issue
Block a user