mirror of
https://github.com/get-drexa/drive.git
synced 2026-02-02 17:31:16 +00:00
37 lines
1.2 KiB
Go
37 lines
1.2 KiB
Go
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()
|
|
}
|