package com.ffii.lioner.modules.lioner.entity;

import java.time.LocalDate;
import java.time.LocalDateTime;

import com.ffii.core.entity.BaseEntity;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Inheritance;
import jakarta.persistence.InheritanceType;
import jakarta.persistence.Table;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;

/** @author Jason Lam */
@Entity
@Table(name = "award")
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class Award extends BaseEntity<Long>{

	@NotNull
	@Column
	private Long applicationId;

	@NotBlank
    @Column
	private String name;

    @Column
	private String nameCht;

    @Column
	private String remarks;

    @Column
	private Long categoryId;

    @Column
	private LocalDate receiveDate;

    @Column
	private String storageLocation;

    @Column
	private String physicalAward;

    @NotBlank
    @Column
	private String responsibleOfficer;

    @Column(columnDefinition = "JSON") 
    private String promotionChannel;

    @Column
	private LocalDateTime importDate;

    public LocalDateTime getImportDate() {
        return this.importDate;
    }

    public void setImportDate(LocalDateTime importDate) {
        this.importDate = importDate;
    }

    public Long getApplicationId() {
        return this.applicationId;
    }

    public void setApplicationId(Long applicationId) {
        this.applicationId = applicationId;
    }

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

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

    public String getNameCht() {
        return this.nameCht;
    }

    public void setNameCht(String nameCht) {
        this.nameCht = nameCht;
    }

    public String getRemarks() {
        return this.remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public Long getCategoryId() {
        return this.categoryId;
    }

    public void setCategoryId(Long categoryId) {
        this.categoryId = categoryId;
    }

    public LocalDate getReceiveDate() {
        return this.receiveDate;
    }

    public void setReceiveDate(LocalDate receiveDate) {
        this.receiveDate = receiveDate;
    }

    public String getStorageLocation() {
        return this.storageLocation;
    }

    public void setStorageLocation(String storageLocation) {
        this.storageLocation = storageLocation;
    }

    public String getPhysicalAward() {
        return this.physicalAward;
    }

    public void setPhysicalAward(String physicalAward) {
        this.physicalAward = physicalAward;
    }

    public String getResponsibleOfficer() {
        return this.responsibleOfficer;
    }

    public void setResponsibleOfficer(String responsibleOfficer) {
        this.responsibleOfficer = responsibleOfficer;
    }

    public String getPromotionChannel() {
        return this.promotionChannel;
    }

    public void setPromotionChannel(String promotionChannel) {
        this.promotionChannel = promotionChannel;
    }

}



