package models import ( "database/sql" "time" ) // InvitationStatus 邀请状态枚举 type InvitationStatus string const ( StatusPending InvitationStatus = "pending" StatusSent InvitationStatus = "sent" StatusAccepted InvitationStatus = "accepted" StatusFailed InvitationStatus = "failed" StatusExpired InvitationStatus = "expired" ) // Invitation 邀请记录表 type Invitation struct { ID int `json:"id"` CardKeyID sql.NullInt64 `json:"card_key_id"` AccountID int `json:"account_id"` InvitedEmail string `json:"invited_email"` Status InvitationStatus `json:"status"` ErrorMessage sql.NullString `json:"error_message"` ExpiresAt sql.NullTime `json:"expires_at"` CreatedAt time.Time `json:"created_at"` UpdatedAt sql.NullTime `json:"updated_at"` } // TableName 返回表名 func (Invitation) TableName() string { return "invitations" } // IsExpired 检查邀请是否过期 func (i *Invitation) IsExpired() bool { if !i.ExpiresAt.Valid { return false } return time.Now().After(i.ExpiresAt.Time) }