Files
soft_usite/pkg/models/cliente_documento.go
2026-05-14 22:30:31 -05:00

48 lines
1.6 KiB
Go

package models
import (
"time"
"github.com/sujit-baniya/fiber-boilerplate/app"
"gorm.io/gorm"
)
// ClienteDocumento almacena los archivos adjuntos de un cliente.
type ClienteDocumento struct {
gorm.Model
ClienteID uint `json:"cliente_id" gorm:"column:cliente_id;not null;index"`
Nombre string `json:"nombre" gorm:"column:nombre"` // nombre descriptivo del doc
Archivo string `json:"archivo" gorm:"column:archivo"` // ruta relativa en disco
OriginalName string `json:"original_name" gorm:"column:original_name"` // nombre original del archivo
TipoMime string `json:"tipo_mime" gorm:"column:tipo_mime"`
Tamanio int64 `json:"tamanio" gorm:"column:tamanio"` // bytes
FechaExpedicion *time.Time `json:"fecha_expedicion" gorm:"column:fecha_expedicion"` // opcional
}
func (ClienteDocumento) TableName() string { return "cliente_documentos" }
func GetDocumentosByCliente(clienteID uint) ([]ClienteDocumento, error) {
var items []ClienteDocumento
err := app.Http.Database.DB.
Where("cliente_id = ?", clienteID).
Order("created_at DESC").
Find(&items).Error
return items, err
}
func CreateClienteDocumento(d *ClienteDocumento) error {
return app.Http.Database.DB.Create(d).Error
}
func GetClienteDocumentoByID(id uint) (*ClienteDocumento, error) {
var d ClienteDocumento
if err := app.Http.Database.DB.First(&d, id).Error; err != nil {
return nil, err
}
return &d, nil
}
func DeleteClienteDocumento(id uint) error {
return app.Http.Database.DB.Delete(&ClienteDocumento{}, id).Error
}