Files
base/internal/domain/profileold/profile.go
2026-04-10 18:25:21 +03:30

53 lines
1.4 KiB
Go

package profile
import (
"encoding/json"
"time"
"github.com/google/uuid"
)
//go:generate stringer -type=Status
type Status int
const (
StatusPublished Status = iota
StatusDisabled
StatusPending
StatusDeleted
)
type Profile struct {
ID uuid.UUID
UserID uuid.UUID
ProfileHandle string
Status Status
Settings Settings
Skills []Skill
SocialLinks []SocialLink
Achievements []Achievement
Experiences []Experience
Educations []Education
Certifications []Certification
Awards []Award
AvailabilityRules []AvailabilityRule
AvailabilityExceptions []AvailabilityException
BookingServices []BookingService
// Note: These are typically loaded separately to avoid circular dependencies
// Assets, AssetBookmarkGroups, SpecialistBookmarks, PurchasedAssets, BookedServices
// are accessed through their respective repositories using ProfileID/UserID
CreatedAt time.Time
UpdatedAt time.Time
}
type Settings struct {
Theme ThemeSettings `json:"theme"`
Other json.RawMessage `json:"rest_of_fields"`
}
type ThemeSettings struct {
BackgroundColor string `json:"background_color"`
TextColor string `json:"text_color"`
RestOfFields json.RawMessage `json:"rest_of_fields"`
}