import type { DeadlineTypeDef, DeadlineCategory, RegistryDirection, } from "../types"; export const DEADLINE_CATALOG: DeadlineTypeDef[] = [ // ═══════════════════════════════════════════════════════════════ // CERTIFICAT DE URBANISM // ═══════════════════════════════════════════════════════════════ // ── Auto-tracked (system creates automatically, not user-selectable) ── { id: "cu-verificare", label: "Verificare cerere CU", description: "Verificare operativa a documentatiei depuse. Dupa acest termen institutia nu mai are dreptul legal sa solicite clarificari sau sa returneze documentatia.", days: 10, dayType: "working", startDateLabel: "Data depunerii cererii", requiresCustomStartDate: false, tacitApprovalApplicable: false, category: "certificat", legalReference: "Legea 50/1991, art. 6^1 alin. (1)", autoTrack: true, directionFilter: ["iesit"], }, { id: "cu-suport-tehnic", label: "Suport tehnic interinstitutional", description: "Termen in care autoritatile locale acorda suport tehnic de specialitate institutiilor din SNAOPSN — stabilirea cerintelor urbanistice.", days: 10, dayType: "working", startDateLabel: "Data solicitarii", requiresCustomStartDate: true, startDateHint: "Data la care institutia SNAOPSN a solicitat suportul tehnic", tacitApprovalApplicable: false, category: "certificat", legalReference: "Legea 50/1991, art. 8 alin. (2)", autoTrack: true, directionFilter: ["iesit"], }, // ── CJ sub-deadlines (auto-created when CJ toggle is on) ── { id: "cu-cj-solicitare-aviz", label: "Arhitect-sef solicita aviz primar", description: "La depunerea cererii CU la Consiliul Judetean, arhitectul-sef solicita avizul structurii de specialitate a primariei in 3 zile calendaristice.", days: 3, dayType: "calendar", startDateLabel: "Data depunerii cererii CU la CJ", requiresCustomStartDate: false, tacitApprovalApplicable: false, chainNextTypeId: "cu-cj-aviz-primar", chainNextActionLabel: "Adauga termen emitere aviz primar (5 zile)", category: "certificat", legalReference: "Legea 50/1991, art. 4 alin. (1^1)", autoTrack: true, directionFilter: ["iesit"], }, { id: "cu-cj-aviz-primar", label: "Primar emite aviz", description: "Primarul emite avizul structurii de specialitate in 5 zile calendaristice de la solicitarea arhitectului-sef.", days: 5, dayType: "calendar", startDateLabel: "Data solicitarii avizului", requiresCustomStartDate: true, startDateHint: "Data la care arhitectul-sef a solicitat avizul", tacitApprovalApplicable: false, category: "certificat", legalReference: "Legea 50/1991, art. 4 alin. (1^1)", autoTrack: true, directionFilter: ["iesit"], }, // ── Comunicare — auto-tracked for all deadline types ── { id: "comunicare-aviz-beneficiar", label: "Comunicare documente catre beneficiar", description: "Entitatile emitente de avize au obligatia sa transmita beneficiarului avizele, solicitarile de completare sau respingerea prin mijloace electronice, in ziua eliberarii actului.", days: 1, dayType: "calendar", startDateLabel: "Data eliberarii actului", requiresCustomStartDate: false, tacitApprovalApplicable: false, category: "certificat", legalReference: "Legea 350/2001, art. 44 alin. (4)", autoTrack: true, directionFilter: ["iesit"], }, // ── User-selectable CU deadlines ── { id: "cu-emitere-l50", label: "Emitere CU (constructii — L50)", description: "Termen de emitere a Certificatului de Urbanism pentru documentatii de constructii. NU se aplica avizarea tacita.", days: 15, dayType: "working", startDateLabel: "Data inregistrarii cererii", requiresCustomStartDate: false, tacitApprovalApplicable: false, category: "certificat", legalReference: "Legea 50/1991, art. 6^1 alin. (1)", directionFilter: ["iesit"], }, { id: "cu-emitere-l350", label: "Emitere CU (urbanism — L350)", description: "Termen de emitere a Certificatului de Urbanism pentru documentatii de urbanism (PUG/PUZ/PUD). NU se aplica avizarea tacita.", days: 30, dayType: "calendar", startDateLabel: "Data inregistrarii cererii", requiresCustomStartDate: false, tacitApprovalApplicable: false, category: "certificat", legalReference: "Legea 350/2001, art. 29 alin. (2)", directionFilter: ["iesit"], }, { id: "cu-prelungire-emitere", label: "Emitere prelungire CU", description: "Termen de emitere a prelungirii CU de la depunerea cererii de prelungire. Termen din practica administrativa (nu e explicit in lege).", days: 30, dayType: "calendar", startDateLabel: "Data depunerii cererii de prelungire", requiresCustomStartDate: true, startDateHint: "Data la care s-a depus cererea de prelungire a CU", tacitApprovalApplicable: false, category: "certificat", legalReference: "Practica administrativa", directionFilter: ["iesit"], }, // ═══════════════════════════════════════════════════════════════ // AVIZE // ═══════════════════════════════════════════════════════════════ { id: "aviz-ac-15", label: "Aviz pt AC (standard)", description: "Termen general de emitere a avizelor si acordurilor necesare Autorizatiei de Construire. Avizul isi pastreaza valabilitatea pe toata durata de valabilitate a CU.", days: 15, dayType: "calendar", startDateLabel: "Data depunerii solicitarii", requiresCustomStartDate: false, tacitApprovalApplicable: true, category: "avize", legalReference: "Legea 50/1991, art. 7 alin. (1)", directionFilter: ["iesit"], }, { id: "aviz-urbanism-30", label: "Aviz pt urbanism (PUG/PUZ/PUD)", description: "Termen de emitere a avizelor/acordurilor pentru documentatii de urbanism.", days: 30, dayType: "calendar", startDateLabel: "Data depunerii solicitarii", requiresCustomStartDate: false, tacitApprovalApplicable: true, category: "avize", legalReference: "Legea 350/2001, art. 44 alin. (4)", directionFilter: ["iesit"], }, { id: "aviz-mediu", label: "Aviz Protectia Mediului", description: "Actul administrativ de mediu se emite in maximum 15 zile de la data incheierii procedurilor specifice de mediu.", days: 15, dayType: "calendar", startDateLabel: "Data finalizare proceduri mediu", requiresCustomStartDate: true, startDateHint: "Data finalizarii procedurii de evaluare de mediu", tacitApprovalApplicable: true, category: "avize", legalReference: "Legea 50/1991, art. 7 alin. (3)", directionFilter: ["iesit"], }, { id: "aviz-cultura-comisie", label: "Aviz Cultura (dupa comisie)", description: "Termen de emitere a avizului de la Comisia nationala/zonala a monumentelor istorice, de la data analizarii documentatiei in comisie.", days: 30, dayType: "calendar", startDateLabel: "Data sedinta comisie", requiresCustomStartDate: true, startDateHint: "Data sedintei comisiei monumentelor istorice", tacitApprovalApplicable: true, category: "avize", legalReference: "Legea 50/1991, art. 7 alin. (3)", directionFilter: ["iesit"], }, { id: "aviz-cultura-mc", label: "Aviz Min. Culturii (faza AC)", description: "Termen de emitere a avizului Ministerului Culturii la faza de autorizare, de la primirea documentatiei complete.", days: 30, dayType: "working", startDateLabel: "Data primirii documentatiei complete", requiresCustomStartDate: true, startDateHint: "Data la care Min. Culturii a primit documentatia completa", tacitApprovalApplicable: true, category: "avize", legalReference: "Legea 50/1991, art. 7 alin. (3^1)", directionFilter: ["iesit"], }, { id: "aviz-aeronautica", label: "Aviz Aeronautica Civila", description: "Termen de emitere a avizului de la Autoritatea Aeronautica Civila Romana.", days: 30, dayType: "calendar", startDateLabel: "Data depunerii documentatiei", requiresCustomStartDate: false, tacitApprovalApplicable: true, category: "avize", legalReference: "Legea 50/1991, art. 7 alin. (3)", directionFilter: ["iesit"], }, { id: "aviz-isu", label: "Aviz ISU (Situatii de Urgenta)", description: "Termen de emitere a avizului ISU pentru documentatii de urbanism.", days: 15, dayType: "calendar", startDateLabel: "Data depunerii", requiresCustomStartDate: false, tacitApprovalApplicable: true, category: "avize", legalReference: "Legea 50/1991, art. 7 alin. (3)", directionFilter: ["iesit"], }, { id: "aviz-transport-eu", label: "Aviz infrastructura transeuropeana", description: "Avize/acorduri de principiu sau de amplasament pentru proiecte de infrastructura transeuropeana de transport.", days: 10, dayType: "calendar", startDateLabel: "Data solicitarii", requiresCustomStartDate: false, tacitApprovalApplicable: true, category: "avize", legalReference: "Legea 50/1991, art. 7 alin. (3)", directionFilter: ["iesit"], }, { id: "aviz-comisie-agenda", label: "Punere pe agenda comisie", description: "Institutiile care emit avize prin comisie de specialitate sunt obligate sa introduca documentatia pe agenda si sa o analizeze in acest termen.", days: 30, dayType: "calendar", startDateLabel: "Data depunerii solicitarii", requiresCustomStartDate: false, tacitApprovalApplicable: false, category: "avize", legalReference: "Legea 350/2001, art. 44 alin. (4)", directionFilter: ["iesit"], }, { id: "aviz-comisie-emitere", label: "Emitere dupa comisie (autoritati centrale)", description: "Pentru autoritatile centrale, avizul se emite in maximum 15 zile de la data analizarii in comisie.", days: 15, dayType: "calendar", startDateLabel: "Data analizarii in comisie", requiresCustomStartDate: true, startDateHint: "Data la care documentatia a fost analizata in comisia de specialitate", tacitApprovalApplicable: true, category: "avize", legalReference: "Legea 350/2001, art. 44 alin. (4)", directionFilter: ["iesit"], }, { id: "aviz-oportunitate-comisie", label: "Aviz oportunitate — analiza", description: "Termen de analiza in comisia tehnica si/sau verificare completari pentru avizul de oportunitate (initiere PUZ). NU se aplica avizarea tacita!", days: 30, dayType: "calendar", startDateLabel: "Data depunerii", requiresCustomStartDate: false, tacitApprovalApplicable: false, category: "avize", legalReference: "Legea 350/2001, art. 32 alin. (1^1)", directionFilter: ["iesit"], }, { id: "aviz-oportunitate-emitere", label: "Aviz oportunitate — emitere", description: "Termen de emitere a avizului de oportunitate de la data analizarii in comisie. NU se aplica avizarea tacita!", days: 15, dayType: "calendar", startDateLabel: "Data analizarii in comisie", requiresCustomStartDate: true, startDateHint: "Data sedintei comisiei tehnice in care s-a analizat", tacitApprovalApplicable: false, category: "avize", legalReference: "Legea 350/2001, art. 32 alin. (1^1)", directionFilter: ["iesit"], }, { id: "aviz-reconfirmare", label: "Reconfirmare avize PUZ/PUD", description: "Termen de reconfirmare a avizelor (fara modificari la solutia tehnica). Lipsa raspunsului inseamna reconfirmare tacita.", days: 5, dayType: "working", startDateLabel: "Data solicitarii reconfirmarii", requiresCustomStartDate: true, startDateHint: "Data la care s-a solicitat reconfirmarea avizelor", tacitApprovalApplicable: true, category: "avize", legalReference: "Legea 350/2001, art. 44 alin. (4)", directionFilter: ["iesit"], }, { id: "aviz-primar", label: "Aviz primar (cand CJ emite)", description: "Cand Consiliul Judetean emite certificatul/autorizatia, arhitectul-sef il solicita in 3 zile, iar primarul il emite in 5 zile.", days: 5, dayType: "calendar", startDateLabel: "Data primirii solicitarii de catre primar", requiresCustomStartDate: true, startDateHint: "Data la care primarul a primit solicitarea de aviz", tacitApprovalApplicable: false, category: "avize", legalReference: "Legea 50/1991, art. 4 alin. (1^1)", directionFilter: ["iesit"], }, { id: "aviz-monument-fara-ac", label: "Acord lucrari minore la monumente", description: "Acord scris al serviciului deconcentrat de cultura pentru lucrari minore la monumente ce nu necesita AC. Depasirea termenului = acord tacit.", days: 30, dayType: "calendar", startDateLabel: "Data notificarii", requiresCustomStartDate: true, startDateHint: "Data la care s-a notificat serviciul deconcentrat de cultura", tacitApprovalApplicable: true, category: "avize", legalReference: "Legea 50/1991, art. 11 alin. (1)", directionFilter: ["iesit"], }, // ═══════════════════════════════════════════════════════════════ // COMPLETARI // ═══════════════════════════════════════════════════════════════ { id: "completare-notificare-5", label: "Solicitare completari (fara comisie)", description: "Pentru avizele care nu trec prin comisii, solicitarea de completari dupa primele 5 zile lucratoare nu este permisa.", days: 5, dayType: "working", startDateLabel: "Data depunerii documentatiei", requiresCustomStartDate: false, tacitApprovalApplicable: false, category: "completari", legalReference: "Norme metodologice Legea 50/1991", directionFilter: ["iesit"], }, { id: "completare-beneficiar-60", label: "Termen beneficiar depunere completari", description: "Beneficiarul are 60 zile de la primirea notificarii pentru a depune documentatia revizuita. Depasirea inchide dosarul si necesita reluarea procesului.", days: 60, dayType: "calendar", startDateLabel: "Data notificarii", requiresCustomStartDate: false, tacitApprovalApplicable: false, chainNextTypeId: "completare-emitere-15", chainNextActionLabel: "Adauga termen emitere dupa completari (15 zile)", category: "completari", legalReference: "Legea 350/2001, art. 44 alin. (4)", directionFilter: ["iesit"], }, { id: "completare-emitere-15", label: "Emitere dupa completari", description: "Dupa depunerea completarilor, entitatile emit avizul sau il resping justificat in 15 zile. Depasirea = aviz tacit.", days: 15, dayType: "calendar", startDateLabel: "Data depunerii completarilor", requiresCustomStartDate: true, startDateHint: "Data la care beneficiarul a depus completarile", tacitApprovalApplicable: true, category: "completari", legalReference: "Legea 350/2001, art. 44 alin. (4)", directionFilter: ["iesit"], }, { id: "completare-ac-beneficiar", label: "Completari AC — termen beneficiar", description: "Termenul de care dispune solicitantul AC pentru a elabora si depune completarile/modificarile cerute. In caz contrar, documentatia se restituie.", days: 90, dayType: "calendar", startDateLabel: "Data notificarii de completare", requiresCustomStartDate: true, startDateHint: "Data primirii notificarii de completare de la autoritate", tacitApprovalApplicable: false, category: "completari", legalReference: "Legea 50/1991, art. 7 alin. (1^1)", directionFilter: ["iesit"], }, // ═══════════════════════════════════════════════════════════════ // URBANISM (PUD/PUZ/PUG) — renamed from "Analiza" // ═══════════════════════════════════════════════════════════════ { id: "ctatu-analiza", label: "Analiza CTATU", description: "Termen de analiza in Comisia Tehnica de Amenajare a Teritoriului si Urbanism.", days: 30, dayType: "calendar", startDateLabel: "Data depunerii", requiresCustomStartDate: false, tacitApprovalApplicable: false, category: "urbanism", legalReference: "Legea 350/2001", directionFilter: ["iesit"], }, { id: "consiliu-promovare", label: "Promovare Consiliu Local", description: "Termen de promovare in sedinta Consiliului Local.", days: 30, dayType: "calendar", startDateLabel: "Data depunerii", requiresCustomStartDate: false, tacitApprovalApplicable: false, category: "urbanism", legalReference: "Legea 350/2001", directionFilter: ["iesit"], }, { id: "consiliu-vot", label: "Vot Consiliu Local", description: "Termen de vot in Consiliu Local de la finalizarea dezbaterii publice.", days: 45, dayType: "calendar", startDateLabel: "Data finalizare dezbatere", requiresCustomStartDate: true, startDateHint: "Data finalizarii dezbaterii publice", tacitApprovalApplicable: false, category: "urbanism", legalReference: "Legea 350/2001", directionFilter: ["iesit"], }, // ═══════════════════════════════════════════════════════════════ // AUTORIZARE (AD/AC) // ═══════════════════════════════════════════════════════════════ { id: "ac-verificare", label: "Verificare documentatie AC", description: "Autoritatea verifica operativ documentatia depusa pentru AC. Daca e incompleta, notifica solicitantul in scris in acest termen.", days: 5, dayType: "working", startDateLabel: "Data depunerii", requiresCustomStartDate: false, tacitApprovalApplicable: false, category: "autorizare", legalReference: "Legea 50/1991, art. 7 alin. (1)", directionFilter: ["iesit"], }, { id: "ac-emitere", label: "Emitere AC (standard)", description: "Termen standard de emitere a Autorizatiei de Construire de la data depunerii documentatiei complete.", days: 30, dayType: "calendar", startDateLabel: "Data depunerii documentatiei complete", requiresCustomStartDate: false, tacitApprovalApplicable: false, category: "autorizare", legalReference: "Legea 50/1991, art. 7 alin. (1)", directionFilter: ["iesit"], }, { id: "ac-emitere-urgenta", label: "Emitere AC (urgenta)", description: "Termen de emitere a AC in regim de urgenta, la solicitarea beneficiarului si cu perceperea unei taxe suplimentare stabilite de consiliul local/judetean.", days: 7, dayType: "working", startDateLabel: "Data depunerii (urgenta)", requiresCustomStartDate: false, tacitApprovalApplicable: false, category: "autorizare", legalReference: "Legea 50/1991, art. 7 alin. (1^2)", directionFilter: ["iesit"], }, { id: "ac-emitere-agricol", label: "Emitere AC (anexe agricole)", description: "Termen de emitere a AC pentru constructii reprezentand anexe gospodaresti ale exploatatiilor agricole.", days: 15, dayType: "calendar", startDateLabel: "Data depunerii", requiresCustomStartDate: false, tacitApprovalApplicable: false, category: "autorizare", legalReference: "Legea 50/1991, art. 7 alin. (1^3)", directionFilter: ["iesit"], }, { id: "ac-prelungire", label: "Depunere prelungire AC", description: "Cererea de prelungire trebuie depusa cu minim 45 zile lucratoare INAINTE de expirarea AC. Se calculeaza inapoi.", days: 45, dayType: "working", startDateLabel: "Data expirare AC", requiresCustomStartDate: true, startDateHint: "Data de expirare a Autorizatiei de Construire", tacitApprovalApplicable: false, category: "autorizare", isBackwardDeadline: true, legalReference: "Legea 50/1991, art. 7 alin. (8)", directionFilter: ["iesit"], }, // ═══════════════════════════════════════════════════════════════ // CONTESTATIE // ═══════════════════════════════════════════════════════════════ { id: "plangere-prealabila", label: "Plangere prealabila", description: "Inainte de a va adresa instantei, trebuie sa solicitati autoritatii revocarea actului. Procedura este scutita de taxa de timbru.", days: 30, dayType: "calendar", startDateLabel: "Data ultimei publicitati", requiresCustomStartDate: true, startDateHint: "Data la care actul a fost adus la cunostinta publicului (ultima operatiune de publicitate: notare in CF, ziar, panou etc.)", tacitApprovalApplicable: false, chainNextTypeId: "contestare-ac", chainNextActionLabel: "Adauga termen contestare in instanta (60 zile)", category: "contestatie", legalReference: "Legea 554/2004, art. 7", directionFilter: ["intrat"], }, { id: "contestare-ac", label: "Contestare AC in instanta", description: "Cererea de anulare/suspendare la instanta de contencios administrativ. Termenul curge de la primirea raspunsului la plangerea prealabila sau de la expirarea termenului de raspuns.", days: 60, dayType: "calendar", startDateLabel: "Data raspuns plangere / expirare termen", requiresCustomStartDate: true, startDateHint: "Data primirii raspunsului la plangerea prealabila (sau data la care a expirat termenul de raspuns)", tacitApprovalApplicable: false, category: "contestatie", legalReference: "Legea 50/1991, art. 12", directionFilter: ["intrat"], }, { id: "contestare-urbanism", label: "Contestare doc urbanism (5 ani)", description: "Dreptul de a ataca in instanta hotararile de aprobare PUG/PUZ/PUD se prescrie in 5 ani de la data aprobarii. Exceptie: 1 an pentru ONG-uri.", days: 1825, dayType: "calendar", startDateLabel: "Data aprobarii HCL/HCJ", requiresCustomStartDate: true, startDateHint: "Data hotararii de aprobare a documentatiei de urbanism", tacitApprovalApplicable: false, category: "contestatie", legalReference: "Legea 350/2001, art. 64 alin. (3)", directionFilter: ["intrat"], }, { id: "contestare-contraventie", label: "Plangere contraventionala", description: "Plangere impotriva PV de amenda la judecatorie. Suspenda obligatia platii amenzii, dar NU suspenda masura opririi/desfiintarii lucrarilor.", days: 15, dayType: "calendar", startDateLabel: "Data comunicarii PV", requiresCustomStartDate: true, startDateHint: "Data inmanarii sau comunicarii procesului-verbal de contraventie", tacitApprovalApplicable: false, category: "contestatie", legalReference: "OG 2/2001, art. 31 alin. (1)", directionFilter: ["intrat"], }, ]; export const CATEGORY_LABELS: Record = { certificat: "Certificat de Urbanism", avize: "Avize", completari: "Completari", urbanism: "Urbanism (PUD/PUZ/PUG)", autorizare: "Autorizare (AD/AC)", contestatie: "Contestatie", }; /** Which categories are shown for each direction */ export const DIRECTION_CATEGORIES: Record< RegistryDirection, DeadlineCategory[] > = { iesit: ["certificat", "avize", "urbanism", "autorizare", "completari"], intrat: ["contestatie"], }; /** * Get the ordered list of categories for a given direction. */ export function getCategoriesForDirection( direction: RegistryDirection, ): DeadlineCategory[] { return DIRECTION_CATEGORIES[direction]; } /** * Get user-selectable deadlines for a category (excludes autoTrack deadlines). */ export function getSelectableDeadlines( category: DeadlineCategory, ): DeadlineTypeDef[] { return DEADLINE_CATALOG.filter( (d) => d.category === category && !d.autoTrack, ); } /** * Get auto-track deadlines that should be created automatically. */ export function getAutoTrackDeadlines( category: DeadlineCategory, ): DeadlineTypeDef[] { return DEADLINE_CATALOG.filter( (d) => d.category === category && d.autoTrack === true, ); } 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); }