#
# Copyright (c) FIRST and other WPILib contributors.
# Open Source Software; you can modify and/or share it under the terms of
# the WPILib BSD license file in the root directory of this project.
#

import wpilib
import commands2
import commands2.cmd

import constants


class HatchSubsystem(commands2.Subsystem):
    def __init__(self) -> None:

        self.hatchSolenoid = wpilib.DoubleSolenoid(
            constants.kHatchSolenoidModule,
            constants.kHatchSolenoidModuleType,
            *constants.kHatchSolenoidPorts
        )

    def grabHatch(self) -> commands2.Command:
        """Grabs the hatch"""
        return commands2.cmd.runOnce(
            lambda: self.hatchSolenoid.set(wpilib.DoubleSolenoid.Value.FORWARD), self
        )

    def releaseHatch(self) -> commands2.Command:
        """Releases the hatch"""
        return commands2.cmd.runOnce(
            lambda: self.hatchSolenoid.set(wpilib.DoubleSolenoid.Value.REVERSE), self
        )
