Files
drive/apps/backend/internal/account/account.go

32 lines
1.2 KiB
Go
Raw Normal View History

2025-11-30 17:12:50 +00:00
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
2025-11-30 17:12:50 +00:00
type Account struct {
bun.BaseModel `bun:"accounts" swaggerignore:"true"`
2025-11-30 17:12:50 +00:00
// 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"`
2025-11-30 17:12:50 +00:00
}
func newAccountID() (uuid.UUID, error) {
return uuid.NewV7()
}