package com.bcxin.tenant.open.domains.services.commands;

import com.bcxin.tenant.open.infrastructures.enums.RailRuleType;
import com.bcxin.tenant.open.infrastructures.enums.RailShapeType;
import com.bcxin.tenant.open.infrastructures.valueTypes.RdSecurityStationRailSnapshootValueType;
import lombok.Getter;

import java.sql.Timestamp;
import java.util.Date;

@Getter
public class UpdateRdSecurityStationRailCommand extends CreateRdSecurityStationRailCommand{
    private final long id;

    public UpdateRdSecurityStationRailCommand(long id,String name, RailShapeType shapeType,
                                              RdSecurityStationRailSnapshootValueType.ShapedLocationValueType shapedLocation,
                                              String stationId,
                                              boolean fromStationManagement,
                                              String stationName,
                                              String superviseDepartId,
                                              String superviseDepartName,
                                              Date beginTime, Date endTime, RailRuleType ruleType,String note) {
        super(name, shapeType, shapedLocation, stationId, fromStationManagement,stationName,superviseDepartId,superviseDepartName, beginTime, endTime, ruleType,note,null);
        this.id=id;
    }

    public static UpdateRdSecurityStationRailCommand create(long id, String name, RailShapeType shapeType,
                                                            RdSecurityStationRailSnapshootValueType.ShapedLocationValueType shapedLocation,
                                                            String stationId,
                                                            boolean fromStationManagement,
                                                            String stationName,
                                                            String superviseDepartId,
                                                            String superviseDepartName,
                                                            Date beginTime, Date endTime, RailRuleType ruleType,
                                                            String note) {
        return new UpdateRdSecurityStationRailCommand(id, name, shapeType, shapedLocation, stationId,
                fromStationManagement,
                stationName, superviseDepartId, superviseDepartName,
                beginTime, endTime, ruleType, note);
    }
}
