from typing import Self

from attrs import define, field, validators


@define
class time:
    hours: int = field(validator=validators.in_(range(24)))
    minutes: int = field(validator=validators.in_(range(60)))
    seconds: int = field(validator=validators.in_(range(60)))

    def change(
        self: Self, hours: int | None, minutes: int | None, seconds: int | None
    ) -> Self:
        if hours is not None:
            self.hours += hours
        if minutes is not None:
            self.minutes += minutes
        if seconds is not None:
            self.seconds += seconds
        return self