/*
* Author:          Patrick-Christopher Mattulat
* Co-Author:       Claude Sonnet 4.6 (LLM)
* Company:         Lynar Studios
* E-Mail:          webmaster@lynarstudios.com
* Created:         2023-03-29
* Changed:         2026-06-23
*
* */

#include <ls-std/time/common/DateParameter.hpp>

using ls::standard::time::DateParameter;
using ls::standard::time::type::Day;
using ls::standard::time::type::Hour;
using ls::standard::time::type::Minute;
using ls::standard::time::type::Month;
using ls::standard::time::type::Second;
using ls::standard::time::type::Year;

DateParameter::DateParameter(const Year _year, const Month _month, const Day _day, const Hour _hour, const Minute _minute, const Second _second) : day(_day), hour(_hour), minute(_minute), month(_month), second(_second), year(_year)
{}

DateParameter::DateParameter() = default;

DateParameter::~DateParameter() = default;

bool DateParameter::operator==(const DateParameter &_dateParameter) const
{
  return this->day == _dateParameter.getDay() && this->hour == _dateParameter.getHour() && this->minute == _dateParameter.getMinute() && this->month == _dateParameter.getMonth() && this->second == _dateParameter.getSecond() && this->year == _dateParameter.getYear();
}

Day DateParameter::getDay() const
{
  return this->day;
}

Hour DateParameter::getHour() const
{
  return this->hour;
}

Minute DateParameter::getMinute() const
{
  return this->minute;
}

Month DateParameter::getMonth() const
{
  return this->month;
}

Second DateParameter::getSecond() const
{
  return this->second;
}

Year DateParameter::getYear() const
{
  return this->year;
}

void DateParameter::setDay(const Day _day)
{
  this->day = _day;
}

void DateParameter::setHour(const Hour _hour)
{
  this->hour = _hour;
}

void DateParameter::setMinute(const Minute _minute)
{
  this->minute = _minute;
}

void DateParameter::setMonth(const Month _month)
{
  this->month = _month;
}

void DateParameter::setSecond(const Second _second)
{
  this->second = _second;
}

void DateParameter::setYear(const Year _year)
{
  this->year = _year;
}
