Files
ArchiTools/src/modules/registratura/services/deadline-catalog.ts
T
AI Assistant 99fbdddb68 3.03 Registratura Termene Legale recipient registration, audit log, expiry tracking
- Added recipientRegNumber/recipientRegDate fields for outgoing docs (deadline triggers from recipient registration date)
- Added prelungire-CU deadline type in catalog (15 calendar days, tacit approval)
- CU category already first in catalog  verified
- DeadlineAuditEntry interface + audit log on TrackedDeadline (created/resolved entries)
- Document expiry tracking: expiryDate + expiryAlertDays with live countdown
- Web scraping prep fields: externalStatusUrl + externalTrackingId
- Dashboard: 6 stat cards (added missing recipient + expiring soon)
- Alert banners for missing recipient data and expiring documents
- Version bump to 0.2.0
2026-02-28 04:31:32 +02:00

249 lines
7.7 KiB
TypeScript

import type { DeadlineTypeDef, DeadlineCategory } from "../types";
export const DEADLINE_CATALOG: DeadlineTypeDef[] = [
// ── Certificat de Urbanism ──
{
id: "cerere-cu",
label: "Cerere CU",
description:
"Termen de emitere a Certificatului de Urbanism de la data depunerii cererii.",
days: 15,
dayType: "calendar",
startDateLabel: "Data depunerii",
requiresCustomStartDate: false,
tacitApprovalApplicable: true,
category: "certificat",
legalReference: "Legea 50/1991, art. 6¹",
},
{
id: "prelungire-cu",
label: "Cerere prelungire CU",
description:
"Cerere de prelungire a Certificatului de Urbanism. Se depune înainte de expirare.",
days: 15,
dayType: "calendar",
startDateLabel: "Data depunerii cererii de prelungire",
requiresCustomStartDate: true,
startDateHint: "Data la care s-a depus cererea de prelungire a CU",
tacitApprovalApplicable: true,
category: "certificat",
legalReference: "Legea 50/1991, art. 6¹",
},
// ── Avize ──
{
id: "avize-normale",
label: "Cerere Avize normale",
description: "Termen de emitere a avizelor de la data depunerii cererii.",
days: 15,
dayType: "calendar",
startDateLabel: "Data depunerii",
requiresCustomStartDate: false,
tacitApprovalApplicable: true,
category: "avize",
},
{
id: "aviz-cultura",
label: "Aviz Cultură",
description:
"Termen de emitere a avizului Ministerului Culturii de la data comisiei.",
days: 30,
dayType: "calendar",
startDateLabel: "Data comisie",
requiresCustomStartDate: true,
startDateHint: "Data ședinței comisiei de specialitate",
tacitApprovalApplicable: true,
category: "avize",
},
{
id: "aviz-mediu",
label: "Aviz Mediu",
description:
"Termen de emitere a avizului de mediu de la finalizarea procedurilor.",
days: 15,
dayType: "calendar",
startDateLabel: "Data finalizare proceduri",
requiresCustomStartDate: true,
startDateHint: "Data finalizării procedurii de evaluare de mediu",
tacitApprovalApplicable: true,
category: "avize",
},
{
id: "aviz-aeronautica",
label: "Aviz Aeronautică",
description: "Termen de emitere a avizului de la Autoritatea Aeronautică.",
days: 30,
dayType: "calendar",
startDateLabel: "Data depunerii",
requiresCustomStartDate: false,
tacitApprovalApplicable: true,
category: "avize",
},
// ── Completări ──
{
id: "completare-beneficiar",
label: "Completare — termen beneficiar",
description:
"Termen acordat beneficiarului pentru completarea documentației.",
days: 60,
dayType: "calendar",
startDateLabel: "Data notificării",
requiresCustomStartDate: false,
tacitApprovalApplicable: false,
chainNextTypeId: "completare-emitere",
chainNextActionLabel: "Adaugă termen emitere (15 zile)",
category: "completari",
},
{
id: "completare-emitere",
label: "Completare — termen emitere",
description: "Termen de emitere după depunerea completărilor.",
days: 15,
dayType: "calendar",
startDateLabel: "Data depunere completări",
requiresCustomStartDate: true,
startDateHint: "Data la care beneficiarul a depus completările",
tacitApprovalApplicable: true,
category: "completari",
},
// ── Analiză ──
{
id: "ctatu-analiza",
label: "Analiză CTATU",
description:
"Termen de analiză în Comisia Tehnică de Amenajare a Teritoriului și Urbanism.",
days: 30,
dayType: "calendar",
startDateLabel: "Data depunerii",
requiresCustomStartDate: false,
tacitApprovalApplicable: false,
category: "analiza",
},
{
id: "consiliu-promovare",
label: "Promovare Consiliu Local",
description: "Termen de promovare în ședința Consiliului Local.",
days: 30,
dayType: "calendar",
startDateLabel: "Data depunerii",
requiresCustomStartDate: false,
tacitApprovalApplicable: false,
category: "analiza",
},
{
id: "consiliu-vot",
label: "Vot Consiliu Local",
description:
"Termen de vot în Consiliu Local de la finalizarea dezbaterii publice.",
days: 45,
dayType: "calendar",
startDateLabel: "Data finalizare dezbatere",
requiresCustomStartDate: true,
startDateHint: "Data finalizării dezbaterii publice",
tacitApprovalApplicable: false,
category: "analiza",
},
// ── Autorizare ──
{
id: "verificare-ac",
label: "Verificare AC",
description:
"Termen de verificare a documentației pentru Autorizația de Construire.",
days: 5,
dayType: "working",
startDateLabel: "Data depunerii",
requiresCustomStartDate: false,
tacitApprovalApplicable: false,
category: "autorizare",
},
{
id: "prelungire-ac",
label: "Cerere prelungire AC",
description:
"Cererea de prelungire trebuie depusă cu minim 45 zile lucrătoare ÎNAINTE de expirarea AC.",
days: 45,
dayType: "working",
startDateLabel: "Data expirare AC",
requiresCustomStartDate: true,
startDateHint: "Data de expirare a Autorizației de Construire",
tacitApprovalApplicable: false,
category: "autorizare",
isBackwardDeadline: true,
},
{
id: "prelungire-ac-comunicare",
label: "Comunicare decizie prelungire",
description: "Termen de comunicare a deciziei privind prelungirea AC.",
days: 15,
dayType: "working",
startDateLabel: "Data depunere cerere",
requiresCustomStartDate: true,
startDateHint: "Data depunerii cererii de prelungire",
tacitApprovalApplicable: false,
category: "autorizare",
},
// ── Publicitate ──
{
id: "publicitate-ac",
label: "Publicitate AC",
description: "Termen de publicitate a Autorizației de Construire.",
days: 30,
dayType: "calendar",
startDateLabel: "Data emitere AC",
requiresCustomStartDate: true,
startDateHint: "Data emiterii Autorizației de Construire",
tacitApprovalApplicable: false,
category: "publicitate",
},
{
id: "plangere-prealabila",
label: "Plângere prealabilă",
description: "Termen de depunere a plângerii prealabile.",
days: 30,
dayType: "calendar",
startDateLabel: "Data ultimă publicitate",
requiresCustomStartDate: true,
startDateHint: "Data ultimei publicități / aduceri la cunoștință",
tacitApprovalApplicable: false,
chainNextTypeId: "contestare-instanta",
chainNextActionLabel: "Adaugă termen contestare instanță (60 zile)",
category: "publicitate",
},
{
id: "contestare-instanta",
label: "Contestare în instanță",
description:
"Termen de contestare în instanța de contencios administrativ.",
days: 60,
dayType: "calendar",
startDateLabel: "Data răspuns plângere",
requiresCustomStartDate: true,
startDateHint: "Data primirii răspunsului la plângerea prealabilă",
tacitApprovalApplicable: false,
category: "publicitate",
},
];
export const CATEGORY_LABELS: Record<DeadlineCategory, string> = {
certificat: "Certificat de Urbanism",
avize: "Avize",
completari: "Completări",
analiza: "Analiză",
autorizare: "Autorizare",
publicitate: "Publicitate",
};
export function getDeadlineType(typeId: string): DeadlineTypeDef | undefined {
return DEADLINE_CATALOG.find((d) => d.id === typeId);
}
export function getDeadlinesByCategory(
category: DeadlineCategory,
): DeadlineTypeDef[] {
return DEADLINE_CATALOG.filter((d) => d.category === category);
}