up
This commit is contained in:
@@ -19,6 +19,11 @@ type Contrato struct {
|
||||
Estado string `json:"estado" gorm:"column:estado;default:'activo'"` // activo | vencido | cancelado | renovado
|
||||
AutoRenovar bool `json:"auto_renovar" gorm:"column:auto_renovar;default:false"`
|
||||
Notas string `json:"notas" gorm:"column:notas"`
|
||||
// Enlace de pago Bold: único por ciclo de pago.
|
||||
// Se reutiliza en múltiples notificaciones del mismo ciclo.
|
||||
// Se anula (vacía) cuando SALE_APPROVED llega y se registra el pago.
|
||||
EnlacePago string `json:"enlace_pago" gorm:"column:enlace_pago;type:text"`
|
||||
EnlacePagoLinkID string `json:"enlace_pago_link_id" gorm:"column:enlace_pago_link_id;type:varchar(64)"`
|
||||
}
|
||||
|
||||
func (Contrato) TableName() string { return "contratos" }
|
||||
@@ -134,3 +139,20 @@ func DeleteContrato(id uint) error {
|
||||
db.Exec("DELETE FROM contrato_servicios WHERE contrato_id = ?", id)
|
||||
return db.Delete(&c).Error
|
||||
}
|
||||
|
||||
// GuardarEnlacePago persiste el enlace de pago Bold en el contrato.
|
||||
func GuardarEnlacePago(contratoID uint, linkID, url string) error {
|
||||
return app.Http.Database.DB.Model(&Contrato{}).Where("id = ?", contratoID).Updates(map[string]interface{}{
|
||||
"enlace_pago": url,
|
||||
"enlace_pago_link_id": linkID,
|
||||
}).Error
|
||||
}
|
||||
|
||||
// LimpiarEnlacePago borra el enlace vigente cuando se registra un pago aprobado,
|
||||
// para que la próxima notificación genere un link nuevo.
|
||||
func LimpiarEnlacePago(contratoID uint) error {
|
||||
return app.Http.Database.DB.Model(&Contrato{}).Where("id = ?", contratoID).Updates(map[string]interface{}{
|
||||
"enlace_pago": "",
|
||||
"enlace_pago_link_id": "",
|
||||
}).Error
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user