"use strict";
// SPDX-License-Identifier: Apache-2.0
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CorporateAction = exports.MIN_ID = void 0;
const ValidatedArgs_1 = __importDefault(require("../../../core/validation/ValidatedArgs"));
const SecurityDate_1 = require("../shared/SecurityDate");
exports.MIN_ID = 1;
class CorporateAction extends ValidatedArgs_1.default {
    id;
    actionType;
    recordDateTimestamp;
    executionDateTimestamp;
    constructor(id, actionType, recordDateTimestamp, executionDateTimestamp) {
        super({
            executionDateTimestamp: (val) => {
                return SecurityDate_1.SecurityDate.checkDateTimestamp(val, this.recordDateTimestamp);
            },
        });
        this.id = id;
        this.actionType = actionType;
        this.recordDateTimestamp = recordDateTimestamp;
        this.executionDateTimestamp = executionDateTimestamp;
        ValidatedArgs_1.default.handleValidation(CorporateAction.name, this);
    }
}
exports.CorporateAction = CorporateAction;
