"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CreateOrganizationCommandHandler = void 0; const OrganizationAggregate_1 = require("../../../Domain/Organization/OrganizationAggregate"); const OrganizationMapper_1 = require("../../DTOs/Mappers/OrganizationMapper"); class CreateOrganizationCommandHandler { constructor(orgRepo) { this.orgRepo = orgRepo; } async execute(cmd) { try { const org = new OrganizationAggregate_1.OrganizationAggregate(); org.name = cmd.name; org.contactfname = cmd.contactfname; org.contactlname = cmd.contactlname; org.contactphone = cmd.contactphone; org.contactemail = cmd.contactemail; org.url = cmd.url || null; org.state = OrganizationAggregate_1.OrganizationState.REGISTERED; const created = await this.orgRepo.create(org); return OrganizationMapper_1.OrganizationMapper.toShortDto(created); } catch (error) { if (error instanceof Error) { if (error.message.includes('duplicate key value violates unique constraint')) { throw new Error('Organization with this name or contact email already exists'); } } throw new Error('Failed to create organization'); } } } exports.CreateOrganizationCommandHandler = CreateOrganizationCommandHandler; //# sourceMappingURL=CreateOrganizationCommandHandler.js.map