def METHOD_NAME(self, mine_guid):
    mine = Mine.find_by_mine_guid(mine_guid)
    if not mine:
        raise NotFound('Mine not found')
    data = self.parser.parse_args()
    start_date = data.get('start_date')
    active_alert = MineAlert.find_active_alert_by_mine_guid(mine_guid)
    mine_has_active_alert = active_alert is not None
    active_alert_indefinite = mine_has_active_alert and active_alert.end_date is None
    all_mine_alerts = MineAlert.find_by_mine_guid(mine_guid)
    historic_alerts = [_alert for _alert in all_mine_alerts if _alert.start_date >= data.get('start_date')]
    if len(historic_alerts) > 0:
        raise BadRequest('Start date cannot come before a historic alert. Please check history for more details.')
    if active_alert and data.get('start_date') >= dt.now(tz=timezone.utc):
        raise BadRequest('Cannot create an alert with a start date in the future with an existing active alert.')
    if active_alert_indefinite:
        active_alert.end_date = start_date - timedelta(seconds=1)
    if active_alert:
        active_alert.is_active = False
        active_alert.save()
    mine_alert = MineAlert.create(
        mine=mine,
        start_date=data.get('start_date'),
        end_date=data.get('end_date'),
        contact_name=data.get('contact_name'),
        contact_phone=data.get('contact_phone'),
        message=data.get('message')
    )
    mine_alert.save()
    return mine_alert, 201