package account import ( "time" "github.com/google/uuid" "github.com/uptrace/bun" ) // Account represents a storage account with quota information // @Description Storage account with usage and quota details type Account struct { bun.BaseModel `bun:"accounts" swaggerignore:"true"` // Unique account identifier ID uuid.UUID `bun:",pk,type:uuid" json:"id" example:"550e8400-e29b-41d4-a716-446655440000"` // ID of the user who owns this account UserID uuid.UUID `bun:"user_id,notnull,type:uuid" json:"userId" example:"550e8400-e29b-41d4-a716-446655440001"` // Current storage usage in bytes StorageUsageBytes int64 `bun:"storage_usage_bytes,notnull" json:"storageUsageBytes" example:"1073741824"` // Maximum storage quota in bytes StorageQuotaBytes int64 `bun:"storage_quota_bytes,notnull" json:"storageQuotaBytes" example:"10737418240"` // When the account was created (ISO 8601) CreatedAt time.Time `bun:"created_at,notnull,nullzero" json:"createdAt" example:"2024-12-13T15:04:05Z"` // When the account was last updated (ISO 8601) UpdatedAt time.Time `bun:"updated_at,notnull,nullzero" json:"updatedAt" example:"2024-12-13T16:30:00Z"` } func newAccountID() (uuid.UUID, error) { return uuid.NewV7() }