Untitled

Anonymous
plain_text
03/01/2026 7:51 AM
3.6 KB
14
Indexable
import { DatabankModel } from "./databank.model";
export interface RangeModel {
    min?: string;
    max?: string;
}
export class StrategicModel extends DatabankModel {
    strategic_objective?: string;
    geographic_focus?: string;
    core_industry_id?: number[];
    preferred_ownership?: string;
    control_expectation?: string;
    capital_structure_preference?: string[];
    flexibility?: string;

    typical_deal_size?: RangeModel;
    revenue_range?: RangeModel;
    ebitda_range?: RangeModel;
    other_financial_metrics?: RangeModel;

    name_portfolio?: string;

    business_model_id?: number[];
    country_id?: number[];
    business_model_noteable?: number[];

    constructor(data: Partial<StrategicModel>) {
        super(data);
        this.core_industry_id = data.core_industry_id;

        this.strategic_objective = data.strategic_objective;
        this.geographic_focus = data.geographic_focus;

        this.preferred_ownership = data.preferred_ownership;
        this.control_expectation = data.control_expectation;
        this.capital_structure_preference =
            data.capital_structure_preference;
        this.flexibility = data.flexibility;

        this.typical_deal_size = data.typical_deal_size;
        this.revenue_range = data.revenue_range;
        this.ebitda_range = data.ebitda_range;
        this.other_financial_metrics =
            data.other_financial_metrics;

        this.name_portfolio = data.name_portfolio;

        this.business_model_id = data.business_model_id;
        this.country_id = data.country_id;
        this.business_model_noteable =
            data.business_model_noteable;
    }

    override toJson() {
        return {
            ...super.toJson(),
            core_industry_id: this.core_industry_id,
            business_model_id: this.business_model_id,
            strategic_objective: this.strategic_objective,
            geographic_focus: this.geographic_focus,

            preferred_ownership: this.preferred_ownership,
            control_expectation: this.control_expectation,
            capital_structure_preference:
                this.capital_structure_preference,
            flexibility: this.flexibility,

            typical_deal_size_min: this.typical_deal_size?.min,
            typical_deal_size_max: this.typical_deal_size?.max,

            revenue_range: this.revenue_range,
            ebitda_range: this.ebitda_range,
            other_financial_metrics: this.other_financial_metrics,

            name_portfolio: this.name_portfolio,

            country_id: this.country_id,
            business_model_noteable:
                this.business_model_noteable,
        };
    }
}
Editor is loading...
Leave a Comment