import { z } from 'zod' import type { ResolutionTemplate } from './index.js' import { baseDocument, escapeHtml, formatDateDe, renderMembers, } from './shared.js' const schema = z.object({ dismisseeName: z.string().min(2), effectiveDate: z.string().min(8), reason: z.string().optional(), releaseFromContract: z.coerce.boolean().optional(), }) export const mdDismissal: ResolutionTemplate = { key: 'md_dismissal', titleDe: 'Beschluss zur Abberufung eines Geschäftsführers', titleEn: 'Managing director dismissal', descriptionDe: 'Gesellschafterbeschluss zur Abberufung einer Person aus der Geschäftsführung gemäß § 38 GmbHG.', schema, fields: [ { key: 'dismisseeName', labelDe: 'Name des Geschäftsführers', labelEn: 'Director name', type: 'text', required: true }, { key: 'effectiveDate', labelDe: 'Wirksam ab', labelEn: 'Effective date', type: 'date', required: true }, { key: 'reason', labelDe: 'Begründung', labelEn: 'Reason', type: 'textarea' }, { key: 'releaseFromContract', labelDe: 'Anstellungsvertrag wird aufgehoben', labelEn: 'Employment contract terminated', type: 'text' }, ], render: ({ values, company, members, createdBy, date }) => { const v = schema.parse(values) const body = `
Abberufung von ${escapeHtml(v.dismisseeName)} als Geschäftsführer der Gesellschaft mit Wirkung zum ${escapeHtml(formatDateDe(v.effectiveDate))} gemäß § 38 GmbHG.
Begründung: ${escapeHtml(v.reason)}
` : ''}