﻿using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace StockMaster.Models
{
    [Table("users", Schema = "stock_management")]
    public class User
    {
        [Key]
        [Column("user_id")]
        public int UserId { get; set; }

        [Required(ErrorMessage = "Username is required")]
        [MaxLength(50)]
        [Column("username")]
        public string Username { get; set; }

        [Required(ErrorMessage = "Password is required")]
        [MaxLength(255)]
        [Column("password")]
        public string Password { get; set; }

        [Required(ErrorMessage = "Full name is required")]
        [MaxLength(100)]
        [Column("full_name")]
        public string FullName { get; set; }

        [Required(ErrorMessage = "Email is required")]
        [EmailAddress(ErrorMessage = "Invalid email format")]
        [MaxLength(100)]
        [Column("email")]
        public string Email { get; set; }

        [Required(ErrorMessage = "Role is required")]
        [MaxLength(20)]
        [Column("role")]
        public string Role { get; set; }

        [Column("is_active")]
        public bool IsActive { get; set; } = true;

        [Column("created_at")]
        public DateTime CreatedAt { get; set; } = DateTime.Now;
    }
}