package com.mosquito.project.persistence.entity;

import jakarta.persistence.*;
import java.time.OffsetDateTime;

@Entity
@Table(name = "activities")
public class ActivityEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false, length = 255)
    private String name;

    @Column(name = "start_time_utc", nullable = false)
    private OffsetDateTime startTimeUtc;

    @Column(name = "end_time_utc", nullable = false)
    private OffsetDateTime endTimeUtc;

    @Column(name = "target_users_config")
    private String targetUsersConfig;

    @Column(name = "page_content_config")
    private String pageContentConfig;

    @Column(name = "reward_calculation_mode", length = 50)
    private String rewardCalculationMode;

    @Column(length = 50)
    private String status;

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

    @Column(name = "updated_at")
    private OffsetDateTime updatedAt;

    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public OffsetDateTime getStartTimeUtc() { return startTimeUtc; }
    public void setStartTimeUtc(OffsetDateTime startTimeUtc) { this.startTimeUtc = startTimeUtc; }
    public OffsetDateTime getEndTimeUtc() { return endTimeUtc; }
    public void setEndTimeUtc(OffsetDateTime endTimeUtc) { this.endTimeUtc = endTimeUtc; }
    public String getTargetUsersConfig() { return targetUsersConfig; }
    public void setTargetUsersConfig(String targetUsersConfig) { this.targetUsersConfig = targetUsersConfig; }
    public String getPageContentConfig() { return pageContentConfig; }
    public void setPageContentConfig(String pageContentConfig) { this.pageContentConfig = pageContentConfig; }
    public String getRewardCalculationMode() { return rewardCalculationMode; }
    public void setRewardCalculationMode(String rewardCalculationMode) { this.rewardCalculationMode = rewardCalculationMode; }
    public String getStatus() { return status; }
    public void setStatus(String status) { this.status = status; }
    public OffsetDateTime getCreatedAt() { return createdAt; }
    public void setCreatedAt(OffsetDateTime createdAt) { this.createdAt = createdAt; }
    public OffsetDateTime getUpdatedAt() { return updatedAt; }
    public void setUpdatedAt(OffsetDateTime updatedAt) { this.updatedAt = updatedAt; }
}
