package models import ( "github.com/sujit-baniya/fiber-boilerplate/app" "gorm.io/gorm" ) // ─── PartnerRecurso ─────────────────────────────────────────────────────────── // Archivos/documentos que el admin sube para que los partners descarguen. type PartnerRecurso struct { gorm.Model Nombre string `json:"nombre" gorm:"column:nombre"` Descripcion string `json:"descripcion" gorm:"column:descripcion;type:text"` Categoria string `json:"categoria" gorm:"column:categoria;default:'general'"` // general|tecnico|comercial|marketing Archivo string `json:"archivo" gorm:"column:archivo"` NombreOrig string `json:"nombre_orig" gorm:"column:nombre_orig"` Enlace string `json:"enlace" gorm:"column:enlace"` // URL externa opcional Activo bool `json:"activo" gorm:"column:activo;default:true"` } func (PartnerRecurso) TableName() string { return "partner_recursos" } // ─── PartnerComunicado ──────────────────────────────────────────────────────── // Anuncios/novedades publicados por el admin exclusivamente para partners. type PartnerComunicado struct { gorm.Model Titulo string `json:"titulo" gorm:"column:titulo"` Contenido string `json:"contenido" gorm:"column:contenido;type:text"` Archivo string `json:"archivo" gorm:"column:archivo"` NombreOrig string `json:"nombre_orig" gorm:"column:nombre_orig"` Activo bool `json:"activo" gorm:"column:activo;default:true"` } func (PartnerComunicado) TableName() string { return "partner_comunicados" } // ─── CRUD PartnerRecurso ────────────────────────────────────────────────────── func GetAllPartnerRecursos(soloActivos bool) ([]PartnerRecurso, error) { var items []PartnerRecurso db := app.Http.Database.DB.Order("created_at DESC") if soloActivos { db = db.Where("activo = true") } return items, db.Find(&items).Error } func GetPartnerRecursoByID(id uint) (*PartnerRecurso, error) { var item PartnerRecurso return &item, app.Http.Database.DB.First(&item, id).Error } func CreatePartnerRecurso(r *PartnerRecurso) error { return app.Http.Database.DB.Create(r).Error } func UpdatePartnerRecurso(r *PartnerRecurso) error { return app.Http.Database.DB.Save(r).Error } func DeletePartnerRecurso(id uint) error { return app.Http.Database.DB.Delete(&PartnerRecurso{}, id).Error } // ─── CRUD PartnerComunicado ─────────────────────────────────────────────────── func GetAllPartnerComunicados(soloActivos bool) ([]PartnerComunicado, error) { var items []PartnerComunicado db := app.Http.Database.DB.Order("created_at DESC") if soloActivos { db = db.Where("activo = true") } return items, db.Find(&items).Error } func GetPartnerComunicadoByID(id uint) (*PartnerComunicado, error) { var item PartnerComunicado return &item, app.Http.Database.DB.First(&item, id).Error } func CreatePartnerComunicado(c *PartnerComunicado) error { return app.Http.Database.DB.Create(c).Error } func UpdatePartnerComunicado(c *PartnerComunicado) error { return app.Http.Database.DB.Save(c).Error } func DeletePartnerComunicado(id uint) error { return app.Http.Database.DB.Delete(&PartnerComunicado{}, id).Error }