mirror of
https://github.com/blacktop/ipsw.git
synced 2026-06-07 12:27:36 +00:00
56 lines
2.1 KiB
Go
56 lines
2.1 KiB
Go
package model
|
|
|
|
// EntitlementKey represents unique entitlement keys
|
|
type EntitlementKey struct {
|
|
ID uint `gorm:"primaryKey" json:"id"`
|
|
Key string `gorm:"type:text;uniqueIndex;not null" json:"key"`
|
|
}
|
|
|
|
// TableName returns the table name for EntitlementKey
|
|
func (EntitlementKey) TableName() string {
|
|
return "entitlement_keys"
|
|
}
|
|
|
|
// EntitlementValue represents unique entitlement values with their types
|
|
type EntitlementValue struct {
|
|
ID uint `gorm:"primaryKey" json:"id"`
|
|
Value string `gorm:"type:text;not null" json:"value"`
|
|
ValueType string `gorm:"type:varchar(10);not null;check:value_type IN ('bool','string','array','dict','number')" json:"value_type"`
|
|
ValueHash string `gorm:"type:char(16);uniqueIndex;not null" json:"value_hash"` // Shortened hash for uniqueness
|
|
}
|
|
|
|
// TableName returns the table name for EntitlementValue
|
|
func (EntitlementValue) TableName() string {
|
|
return "entitlement_values"
|
|
}
|
|
|
|
// Entitlement represents the mapping between keys, values, paths and IPSWs
|
|
type Entitlement struct {
|
|
ID uint64 `gorm:"primaryKey" json:"id"`
|
|
IpswID string `gorm:"uniqueIndex:idx_unique_entitlement,priority:1;not null" json:"ipsw_id"`
|
|
PathID uint `gorm:"uniqueIndex:idx_unique_entitlement,priority:2;not null" json:"path_id"`
|
|
KeyID uint `gorm:"uniqueIndex:idx_unique_entitlement,priority:3;not null" json:"key_id"`
|
|
ValueID uint `gorm:"uniqueIndex:idx_unique_entitlement,priority:4;not null" json:"value_id"`
|
|
|
|
// Foreign key relationships
|
|
Ipsw *Ipsw `gorm:"foreignKey:IpswID" json:"ipsw,omitempty"`
|
|
Path *Path `gorm:"foreignKey:PathID" json:"path,omitempty"`
|
|
Key *EntitlementKey `gorm:"foreignKey:KeyID" json:"key,omitempty"`
|
|
Value *EntitlementValue `gorm:"foreignKey:ValueID" json:"value,omitempty"`
|
|
}
|
|
|
|
// TableName returns the table name for Entitlement
|
|
func (Entitlement) TableName() string {
|
|
return "entitlements"
|
|
}
|
|
|
|
// EntitlementQuery represents query parameters for searching entitlements
|
|
type EntitlementQuery struct {
|
|
Version string
|
|
Build string
|
|
Device string
|
|
KeyPattern string
|
|
ValuePattern string
|
|
FilePath string
|
|
}
|