feat: implement core domain models, authentication service, and UI components for the attendance system

This commit is contained in:
2026-07-31 14:39:25 -04:00
commit f476f704eb
329 changed files with 12622 additions and 0 deletions
+125
View File
@@ -0,0 +1,125 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:Asistencia.ViewModels"
x:Class="Asistencia.Views.PerfilView"
x:DataType="vm:PerfilViewModel">
<Design.DataContext>
<vm:PerfilViewModel />
</Design.DataContext>
<ScrollViewer>
<StackPanel Spacing="0" Margin="32,24" MaxWidth="600">
<Button Content="Volver" Classes="secondary"
HorizontalAlignment="Left"
Command="{Binding VolverCommand}"
Margin="0,0,0,16" />
<TextBlock Text="Mi Perfil" Classes="page-header" />
<Border Classes="card" Margin="0,0,0,20">
<StackPanel Spacing="16">
<TextBlock Text="Informacion Personal"
Classes="card-title" Margin="0,0,0,8" />
<StackPanel Spacing="4">
<TextBlock Text="RUT" FontSize="13"
Foreground="{DynamicResource TextSecondary}" />
<TextBlock Text="{Binding Rut}" FontSize="15"
FontWeight="SemiBold" />
</StackPanel>
<StackPanel Spacing="4">
<TextBlock Text="Nombre Completo" FontSize="13"
Foreground="{DynamicResource TextSecondary}" />
<TextBlock Text="{Binding NombreCompleto}" FontSize="15"
FontWeight="SemiBold" />
</StackPanel>
<StackPanel Spacing="4">
<TextBlock Text="Telefono" FontSize="13"
Foreground="{DynamicResource TextSecondary}" />
<TextBlock Text="{Binding Fono}" FontSize="15" />
</StackPanel>
<StackPanel Spacing="4">
<TextBlock Text="Direccion" FontSize="13"
Foreground="{DynamicResource TextSecondary}" />
<TextBlock Text="{Binding Direccion}" FontSize="15" />
</StackPanel>
</StackPanel>
</Border>
<Border Classes="card" Margin="0,0,0,20">
<StackPanel Spacing="16">
<TextBlock Text="Email" Classes="card-title" Margin="0,0,0,8" />
<TextBox Text="{Binding Email}" FontSize="14"
Watermark="correo@ejemplo.com" />
<Button Content="Guardar Email"
Classes="primary"
HorizontalAlignment="Left"
Command="{Binding GuardarEmailCommand}" />
</StackPanel>
</Border>
<Border Classes="card" Margin="0,0,0,20">
<StackPanel Spacing="16">
<Grid ColumnDefinitions="*,Auto">
<TextBlock Grid.Column="0" Text="Cambiar Contrasena"
Classes="card-title" />
<Button Grid.Column="1"
Content="Cambiar Contrasena"
Classes="secondary"
Command="{Binding ToggleCambioClaveCommand}"
FontSize="13" />
</Grid>
<StackPanel Spacing="12"
IsVisible="{Binding MostrarCambioClave}">
<StackPanel Spacing="4">
<TextBlock Text="Contrasena Actual" FontSize="13"
Foreground="{DynamicResource TextSecondary}" />
<TextBox Text="{Binding ClaveActual}"
PasswordChar="*" FontSize="14" />
</StackPanel>
<StackPanel Spacing="4">
<TextBlock Text="Nueva Contrasena" FontSize="13"
Foreground="{DynamicResource TextSecondary}" />
<TextBox Text="{Binding NuevaClave}"
PasswordChar="*" FontSize="14" />
</StackPanel>
<StackPanel Spacing="4">
<TextBlock Text="Confirmar Contrasena" FontSize="13"
Foreground="{DynamicResource TextSecondary}" />
<TextBox Text="{Binding ConfirmarClave}"
PasswordChar="*" FontSize="14" />
</StackPanel>
<Button Content="Cambiar Contrasena"
Classes="primary"
HorizontalAlignment="Left"
Command="{Binding CambiarClaveCommand}" />
</StackPanel>
</StackPanel>
</Border>
<Border Classes="card"
IsVisible="{Binding TieneExito}"
Background="#D4EDDA" BorderBrush="#C3E6CB" Margin="0,0,0,12">
<TextBlock Text="{Binding MensajeExito}"
FontSize="14" Foreground="#155724" />
</Border>
<Border Classes="card"
IsVisible="{Binding TieneError}"
Background="#F8D7DA" BorderBrush="#F5C6CB" Margin="0,0,0,12">
<TextBlock Text="{Binding MensajeError}"
FontSize="14" Foreground="#721C24" />
</Border>
</StackPanel>
</ScrollViewer>
</UserControl>