package com.rit.ems.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;

@Entity
@Table(name = "ems_special_events")
public class SpecialEvent {
    @Id
    private String id;

    private String name;
    
    @Column(columnDefinition = "TEXT")
    private String description;
    
    private String location;

    @Column(name = "start_date")
    private String startDate;

    @Column(name = "end_date")
    private String endDate;

    @Column(name = "created_at")
    private String createdAt;

    @Column(name = "is_active")
    private Boolean isActive = true;

    @Column(name = "verification_status")
    private String verificationStatus = "APPROVED";

    public SpecialEvent() {}

    public SpecialEvent(String id, String name, String description, String location, String startDate, String endDate, String createdAt, Boolean isActive, String verificationStatus) {
        this.id = id;
        this.name = name;
        this.description = description;
        this.location = location;
        this.startDate = startDate;
        this.endDate = endDate;
        this.createdAt = createdAt;
        this.isActive = isActive;
        this.verificationStatus = verificationStatus;
    }

    public String getId() { return id; }
    public void setId(String id) { this.id = id; }

    public String getName() { return name; }
    public void setName(String name) { this.name = name; }

    public String getDescription() { return description; }
    public void setDescription(String description) { this.description = description; }

    public String getLocation() { return location; }
    public void setLocation(String location) { this.location = location; }

    public String getStartDate() { return startDate; }
    public void setStartDate(String startDate) { this.startDate = startDate; }

    public String getEndDate() { return endDate; }
    public void setEndDate(String endDate) { this.endDate = endDate; }

    public String getCreatedAt() { return createdAt; }
    public void setCreatedAt(String createdAt) { this.createdAt = createdAt; }

    public Boolean getIsActive() { return isActive; }
    public void setIsActive(Boolean isActive) { this.isActive = isActive; }

    public String getVerificationStatus() { return verificationStatus; }
    public void setVerificationStatus(String verificationStatus) { this.verificationStatus = verificationStatus; }

    @JsonProperty("created_at")
    public String getCreatedAtSnake() { return createdAt; }
    @JsonProperty("created_at")
    public void setCreatedAtSnake(String createdAt) { this.createdAt = createdAt; }

    @JsonProperty("is_active")
    public Boolean getIsActiveSnake() { return isActive; }
    @JsonProperty("is_active")
    public void setIsActiveSnake(Boolean isActive) { this.isActive = isActive; }

    @JsonProperty("verification_status")
    public String getVerificationStatusSnake() { return verificationStatus; }
    @JsonProperty("verification_status")
    public void setVerificationStatusSnake(String verificationStatus) { this.verificationStatus = verificationStatus; }
}
