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

44 lines
1011 B
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"
)
2026-01-01 18:29:52 +00:00
type Role string
const (
RoleAdmin Role = "admin"
RoleMember Role = "member"
)
2025-11-30 17:12:50 +00:00
2026-01-01 18:29:52 +00:00
type Status string
2026-01-01 18:29:52 +00:00
const (
StatusInvited Status = "invited"
StatusActive Status = "active"
StatusSuspended Status = "suspended"
)
2026-01-01 18:29:52 +00:00
// Account represents a user's identity within an organization (principal / membership).
type Account struct {
bun.BaseModel `bun:"accounts" swaggerignore:"true"`
2026-01-01 18:29:52 +00:00
ID uuid.UUID `bun:",pk,type:uuid" json:"id"`
OrgID uuid.UUID `bun:"org_id,notnull,type:uuid" json:"orgId"`
UserID uuid.UUID `bun:"user_id,notnull,type:uuid" json:"userId"`
2026-01-01 18:29:52 +00:00
Role Role `bun:"role,notnull" json:"role" example:"member"`
Status Status `bun:"status,notnull" json:"status" example:"active"`
2026-01-01 18:29:52 +00:00
CreatedAt time.Time `bun:"created_at,notnull,nullzero" json:"createdAt"`
UpdatedAt time.Time `bun:"updated_at,notnull,nullzero" json:"updatedAt"`
2025-11-30 17:12:50 +00:00
}
func newAccountID() (uuid.UUID, error) {
return uuid.NewV7()
}
2026-01-01 18:29:52 +00:00