From 25f21be966133a85897dcbdd0ca1d2e29edc96f1 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Mon, 18 May 2026 19:17:05 -0500 Subject: [PATCH] up --- migrations/migrate.go | 1 + pkg/models/proyecto.go | 36 +++++++++ resources/views/proyecto_detalle.html | 102 +++++++++++++++++++++++- rest/controllers/proyecto_controller.go | 90 +++++++++++++++++++++ rest/routes/user.go | 4 + 5 files changed, 230 insertions(+), 3 deletions(-) diff --git a/migrations/migrate.go b/migrations/migrate.go index 4e53f80..39f3ba3 100755 --- a/migrations/migrate.go +++ b/migrations/migrate.go @@ -80,6 +80,7 @@ func Migrate() { &models.ProyectoFase{}, &models.ProyectoAvance{}, &models.ProyectoEntregable{}, + &models.ProyectoDocumento{}, &models.ProyectoTicket{}, &models.TicketMensaje{}, &models.Factura{}, diff --git a/pkg/models/proyecto.go b/pkg/models/proyecto.go index 4afb518..e89016a 100644 --- a/pkg/models/proyecto.go +++ b/pkg/models/proyecto.go @@ -276,3 +276,39 @@ func DeleteProyectoEntregable(id uint) error { func UpdateEntregableVisibilidad(id uint, visible bool) error { return app.Http.Database.DB.Model(&ProyectoEntregable{}).Where("id = ?", id).Update("visible", visible).Error } + +// ─── ProyectoDocumento (contratos y órdenes de servicio) ────────────────────── + +type ProyectoDocumento struct { + gorm.Model + ProyectoID uint `json:"proyecto_id" gorm:"column:proyecto_id;index"` + Tipo string `json:"tipo" gorm:"column:tipo;default:'contrato'"` // contrato|orden_servicio|otro + Nombre string `json:"nombre" gorm:"column:nombre"` + Descripcion string `json:"descripcion" gorm:"column:descripcion;type:text"` + Archivo string `json:"archivo" gorm:"column:archivo"` + OriginalName string `json:"original_name" gorm:"column:original_name"` + TipoMime string `json:"tipo_mime" gorm:"column:tipo_mime"` + Tamanio int64 `json:"tamanio" gorm:"column:tamanio"` +} + +func (ProyectoDocumento) TableName() string { return "proyecto_documentos" } + +func GetDocumentosByProyecto(proyectoID uint) ([]ProyectoDocumento, error) { + var items []ProyectoDocumento + err := app.Http.Database.DB.Where("proyecto_id = ?", proyectoID).Order("created_at DESC").Find(&items).Error + return items, err +} + +func CreateProyectoDocumento(d *ProyectoDocumento) error { + return app.Http.Database.DB.Create(d).Error +} + +func GetProyectoDocumentoByID(id uint) (*ProyectoDocumento, error) { + var item ProyectoDocumento + err := app.Http.Database.DB.First(&item, id).Error + return &item, err +} + +func DeleteProyectoDocumento(id uint) error { + return app.Http.Database.DB.Delete(&ProyectoDocumento{}, id).Error +} diff --git a/resources/views/proyecto_detalle.html b/resources/views/proyecto_detalle.html index 6944e1d..d697162 100644 --- a/resources/views/proyecto_detalle.html +++ b/resources/views/proyecto_detalle.html @@ -20,7 +20,7 @@
-