package com.imprimelibros.erp.pedidos; import jakarta.persistence.*; import java.time.LocalDateTime; import com.imprimelibros.erp.presupuesto.dto.Presupuesto; @Entity @Table(name = "pedidos_lineas") public class PedidoLinea { public enum Estado { pendiente_pago("pedido.estado.pendiente_pago", 1), procesando_pago("pedido.estado.procesando_pago", 2), denegado_pago("pedido.estado.denegado_pago", 3), aprobado("pedido.estado.aprobado", 4), maquetacion("pedido.estado.maquetacion", 5), haciendo_ferro("pedido.estado.haciendo_ferro", 6), esperando_aceptacion_ferro("pedido.estado.esperando_aceptacion_ferro", 7), ferro_cliente("pedido.estado.ferro_cliente", 8), produccion("pedido.estado.produccion", 9), cancelado("pedido.estado.cancelado", 10); private final String messageKey; private final int priority; Estado(String messageKey, int priority) { this.messageKey = messageKey; this.priority = priority; } public String getMessageKey() { return messageKey; } public int getPriority() { return priority; } } @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY, optional = false) @JoinColumn(name = "pedido_id", nullable = false) private Pedido pedido; @ManyToOne(fetch = FetchType.LAZY, optional = false) @JoinColumn(name = "presupuesto_id", nullable = false) private Presupuesto presupuesto; @Enumerated(EnumType.STRING) @Column(name = "estado", nullable = false) private Estado estado = Estado.aprobado; @Column(name = "estado_manual", nullable = false) private Boolean estadoManual; @Column(name = "fecha_entrega") private LocalDateTime fechaEntrega; @Column(name = "created_at") private LocalDateTime createdAt; @Column(name = "created_by", nullable = false) private Long createdBy; // --- Getters y setters --- public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Pedido getPedido() { return pedido; } public void setPedido(Pedido pedido) { this.pedido = pedido; } public Presupuesto getPresupuesto() { return presupuesto; } public void setPresupuesto(Presupuesto presupuesto) { this.presupuesto = presupuesto; } public Estado getEstado() { return estado; } public void setEstado(Estado estado) { this.estado = estado; } public Boolean getEstadoManual() { return estadoManual; } public void setEstadoManual(Boolean estadoManual) { this.estadoManual = estadoManual; } public LocalDateTime getFechaEntrega() { return fechaEntrega; } public void setFechaEntrega(LocalDateTime fechaEntrega) { this.fechaEntrega = fechaEntrega; } public LocalDateTime getCreatedAt() { return createdAt; } public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; } public Long getCreatedBy() { return createdBy; } public void setCreatedBy(Long createdBy) { this.createdBy = createdBy; } }