package schema import ( "time" "github.com/uptrace/bun" ) type Profile struct { bun.BaseModel `bun:"table:profile"` ID string `bun:"id,pk"` CreatedAt time.Time `bun:"created_date,nullzero,notnull,default:current_timestamp"` UpdatedAt time.Time `bun:"last_modified_date,nullzero,notnull,default:current_timestamp"` Version int `bun:"version,default:0"` FirstName string `bun:"first_name"` LastName string `bun:"last_name"` UserName string `bun:"user_name,unique:user_name"` Email string `bun:"email"` Password string `bun:"password"` Enabled bool `bun:"enabled"` Assignments []Assignment `bun:"rel:has-many,join:id=profile_id"` Tokens []Token `bun:"rel:has-many,join:id=profile_id"` } type Permission struct { bun.BaseModel `bun:"table:permission"` ID string `bun:"id,pk"` CreatedAt time.Time `bun:"created_date,nullzero,notnull,default:current_timestamp"` UpdatedAt time.Time `bun:"last_modified_date,nullzero,notnull,default:current_timestamp"` Version int `bun:"version,default:0"` Name string `bun:"name,unique:name"` Assignments []Assignment `bun:"rel:has-many,join:id=permission_id"` } type Token struct { bun.BaseModel `bun:"table:token"` ID string `bun:"id,pk"` CreatedAt time.Time `bun:"created_date,nullzero,notnull,default:current_timestamp"` UpdatedAt time.Time `bun:"last_modified_date,nullzero,notnull,default:current_timestamp"` Version int `bun:"version,default:0"` Name string `bun:"name,unique:name"` LastUsedAt time.Time `bun:"last_used_date,nullzero,notnull,default:current_timestamp"` Enabled bool `bun:"enabled,default:true"` ProfileID *string `bun:"profile_id"` Profile *Profile `bun:"rel:belongs-to,join:profile_id=id"` } type Assignment struct { bun.BaseModel `bun:"table:assignment"` ID string `bun:"id,pk"` CreatedAt time.Time `bun:"created_date,nullzero,notnull,default:current_timestamp"` UpdatedAt time.Time `bun:"last_modified_date,nullzero,notnull,default:current_timestamp"` Version int `bun:"version,default:0"` ProfileID *string `bun:"profile_id"` Profile *Profile `bun:"rel:belongs-to,join:profile_id=id"` PermissionID *string `bun:"permission_id"` Permission *Permission `bun:"rel:belongs-to,join:permission_id=id"` }