package models import "time" type Rooster struct { ID string `gorm:"type:string;primary_key;" json:"id"` CreatedAt time.Time `gorm:"column:created_date" json:"created_date"` UpdatedAt time.Time `gorm:"column:last_modified_date" json:"last_modified_date"` DeletedAt *time.Time `gorm:"column:deleted_date" json:"deleted_date"` Version int `gorm:"default:0" json:"version"` Year int `gorm:"column:year" json:"year"` TeamID string `gorm:"column:team_id" json:"team_id"` Team Team `gorm:"foreignKey:TeamID" json:"team"` PlayerID string `gorm:"column:player_id" json:"player_id"` Player Player `gorm:"foreignKey:PlayerID" json:"player"` PositionID string `gorm:"column:position_id" json:"position_id"` Position Position `gorm:"foreignKey:PositionID" json:"position"` Cards []Card `gorm:"foreignKey:RoosterID" json:"cards"` } func (rooster *Rooster) TableName() string { return "rooster" } type RoosterDTO struct { ID string `json:"id" binding:"required"` CreatedAt time.Time `json:"created_date" binding:"required"` UpdatedAt time.Time `json:"last_modified_date" binding:"required"` DeletedAt *time.Time `json:"deleted_date,omitempty" binding:"omitempty"` Version int `json:"version" binding:"required"` Year int `json:"year" binding:"required"` TeamID string `json:"team_id" binding:"required"` PlayerID string `json:"player_id" binding:"required"` PositionID string `json:"position_id" binding:"required"` } func ConvertRoostersToDtos(roosters []Rooster) []RoosterDTO { dtos := make([]RoosterDTO, len(roosters)) for i, rooster := range roosters { dtos[i] = RoosterDTO{ ID: rooster.ID, CreatedAt: rooster.CreatedAt, UpdatedAt: rooster.UpdatedAt, DeletedAt: rooster.DeletedAt, Version: rooster.Version, Year: rooster.Year, TeamID: rooster.TeamID, PlayerID: rooster.PlayerID, PositionID: rooster.PositionID, } } return dtos }