import { CommonModule } from '@angular/common';
import { Component } from '@angular/core';
import { RouterModule } from '@angular/router';

import { SidebarComponent } from '../../components/sidebar/sidebar.component';
import { PageTopbarComponent } from '../../shared/components/page-topbar/page-topbar.component';

interface ConfigCard {
  title: string;
  description: string;
  route: string;
}

interface ConfigSection {
  title: string;
  accent: 'general' | 'sales' | 'inventory' | 'expenses';
  cards: ConfigCard[];
}

@Component({
  selector: 'app-configuracion',
  standalone: true,
  imports: [SidebarComponent, CommonModule, RouterModule, PageTopbarComponent],
  templateUrl: './configuracion.page.html',
  styleUrl: './configuracion.page.scss'
})
export class ConfiguracionPage {
  readonly sections: ConfigSection[] = [
    {
      title: 'Configuracion general',
      accent: 'general',
      cards: [
        { title: 'Usuarios', description: 'Altas, edicion y baja de usuarios del sistema.', route: '/Usuarios' },
        { title: 'Perfiles', description: 'Define roles y niveles de acceso operativos.', route: '/Profile' },
        { title: 'Clientes', description: 'Catalogo comercial de clientes registrados.', route: '/Client' },
        { title: 'Sucursales', description: 'Sucursales comerciales usadas en ventas y clientes.', route: '/Branch' },
        { title: 'Salary', description: 'Configura salarios base y tarifas asociadas.', route: '/Salary' },
        { title: 'Attendance Type', description: 'Tipos de asistencia y multiplicadores de pago.', route: '/Attendance-type' },
        { title: 'Areas', description: 'Areas internas para organizacion del personal.', route: '/Area' }
      ]
    },
    {
      title: 'Ventas',
      accent: 'sales',
      cards: [
        {
          title: 'Categorias de producto de venta',
          description: 'Clasifica lo que se ofrece al cliente final.',
          route: '/configuracion/ventas/categorias'
        },
        {
          title: 'Productos de venta',
          description: 'Catalogo comercial separado de los articulos de inventario.',
          route: '/configuracion/ventas/productos'
        }
      ]
    },
    {
      title: 'Inventario',
      accent: 'inventory',
      cards: [
        {
          title: 'Categorias de inventario',
          description: 'Agrupa materias primas, suministros y articulos internos.',
          route: '/configuracion/inventario/categorias'
        },
        {
          title: 'Unidades de inventario',
          description: 'Define unidades de medida para el control interno.',
          route: '/configuracion/inventario/unidades'
        },
        {
          title: 'Ubicaciones de inventario',
          description: 'Plantas, almacenes, sucursales o vehiculos de resguardo.',
          route: '/configuracion/inventario/ubicaciones'
        },
        {
          title: 'Proveedores de inventario',
          description: 'Proveedores usados para compras y abastecimiento.',
          route: '/configuracion/inventario/proveedores'
        },
        {
          title: 'Articulos de inventario',
          description: 'Catalogo maestro de inventario separado de ventas.',
          route: '/configuracion/inventario/articulos'
        }
      ]
    },
    {
      title: 'Gastos',
      accent: 'expenses',
      cards: [
        {
          title: 'Categorias de gasto',
          description: 'Clasifica gastos internos y operativos del negocio.',
          route: '/configuracion/gastos/categorias'
        },
        {
          title: 'Centros de gasto',
          description: 'Catalogo propio para gastos internos, sin mezclar sucursales.',
          route: '/configuracion/gastos/centros'
        }
      ]
    }
  ];
}
