48 lines
1.6 KiB
Go
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
|
|
}
|