# -*- coding: utf-8 -*-
"""
@author: yq
@time: 2024/11/1
@desc: 
"""
import pandas as pd


class DataFeatureEntity():
    def __init__(self, data: pd.DataFrame, x_columns: list, y_column: str):
        self._data = data
        self._x_columns = x_columns
        self._y_column = y_column

    @property
    def data(self):
        return self._data

    @property
    def x_columns(self):
        return self._x_columns

    @property
    def y_column(self):
        return self._y_column

    def get_Xdata(self):
        return self._data[self._x_columns]

    def get_Ydata(self):
        return self._data[self._y_column]


class DataPreparedEntity():
    def __init__(self, train_data: DataFeatureEntity, val_data: DataFeatureEntity, test_data: DataFeatureEntity):
        self._train_data = train_data
        self._val_data = val_data
        self._test_data = test_data

    @property
    def train_data(self):
        return self._train_data

    @property
    def val_data(self):
        return self._val_data

    @property
    def test_data(self):
        return self._test_data


class DataSplitEntity():
    def __init__(self, train_data: pd.DataFrame, val_data: pd.DataFrame, test_data: pd.DataFrame, y_column: str):
        self._train_data = train_data
        self._val_data = val_data
        self._test_data = test_data
        self._y_column = y_column

    @property
    def train_data(self):
        return self._train_data

    @property
    def val_data(self):
        return self._val_data

    @property
    def test_data(self):
        return self._test_data

    @property
    def y_column(self):
        return self._y_column


if __name__ == "__main__":
    pass