using Marco.Pms.Model.Expenses.Masters;
using Marco.Pms.Model.Forum;
using Marco.Pms.Model.Master;

namespace Marco.Pms.Services.Service
{
    public class MasterDataService
    {
        public List<TicketStatusMaster> GetTicketStatusesData(Guid tenantId)
        {
            return new List<TicketStatusMaster>
            {
                new TicketStatusMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "New",
                    Description = "This is a newly created issue.",
                    ColorCode = "#FFCC99",
                    IsDefault = true,
                    TenantId = tenantId
                },
                new TicketStatusMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Assigned",
                    Description = "Assigned to employee or team of employees",
                    ColorCode = "#E6FF99",
                    IsDefault = true,
                    TenantId = tenantId
                },
                new TicketStatusMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "In Progress",
                    Description = "These issues are currently in progress",
                    ColorCode = "#99E6FF",
                    IsDefault = true,
                    TenantId = tenantId
                },
                new TicketStatusMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "In Review",
                    Description = "These issues are currently under review",
                    ColorCode = "#8592a3",
                    IsDefault = true,
                    TenantId = tenantId
                },
                new TicketStatusMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Done",
                    Description = "The following issues are resolved and closed",
                    ColorCode = "#B399FF",
                    IsDefault = true,
                    TenantId = tenantId
                }
            };
        }
        public List<TicketTypeMaster> GetTicketTypesData(Guid tenantId)
        {
            return new List<TicketTypeMaster>
            {
                new TicketTypeMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Quality Issue",
                    Description = "An identified problem that affects the performance, reliability, or standards of a product or service",
                    IsDefault = true,
                    TenantId = tenantId
                },
                new TicketTypeMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Help Desk",
                    Description = "A support service that assists users with technical issues, requests, or inquiries.",
                    IsDefault = true,
                    TenantId = tenantId
                }
            };
        }
        public List<TicketPriorityMaster> GetTicketPrioritysData(Guid tenantId)
        {
            return new List<TicketPriorityMaster>
            {
                new TicketPriorityMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Low",
                    ColorCode = "008000",
                    Level = 1,
                    IsDefault = true,
                    TenantId = tenantId
                },
                new TicketPriorityMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Medium",
                    ColorCode = "FFFF00",
                    Level = 2,
                    IsDefault = true,
                    TenantId = tenantId
                },
                new TicketPriorityMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "High",
                    ColorCode = "#FFA500",
                    Level = 3,
                    IsDefault = true,
                    TenantId = tenantId
                },
                new TicketPriorityMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Critical",
                    ColorCode = "#FFA500",
                    Level = 4,
                    IsDefault = true,
                    TenantId = tenantId
                },
                new TicketPriorityMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Urgent",
                    ColorCode = "#FF0000",
                    Level = 5,
                    IsDefault = true,
                    TenantId = tenantId
                }
            };
        }
        public List<TicketTagMaster> GetTicketTagsData(Guid tenantId)
        {
            return new List<TicketTagMaster>
            {
                new TicketTagMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Quality Issue",
                    ColorCode = "#e59866",
                    IsDefault = true,
                    TenantId = tenantId
                },
                new TicketTagMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Help Desk",
                    ColorCode = "#85c1e9",
                    IsDefault = true,
                    TenantId = tenantId
                }
            };
        }
        public List<WorkCategoryMaster> GetWorkCategoriesData(Guid tenantId)
        {
            return new List<WorkCategoryMaster>
            {
                new WorkCategoryMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Fresh Work",
                    Description = "Created new task in a professional or creative context",
                    IsSystem = true,
                    TenantId = tenantId
                },
                new WorkCategoryMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Rework",
                    Description = "Revising, modifying, or correcting a task to improve its quality or fix issues",
                    IsSystem = true,
                    TenantId = tenantId
                },
                new WorkCategoryMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Quality Issue",
                    Description = "Any defect, deviation, or non-conformance in a task that fails to meet established standards or customer expectations.",
                    IsSystem = true,
                    TenantId = tenantId
                }
            };
        }
        public List<WorkStatusMaster> GetWorkStatusesData(Guid tenantId)
        {
            return new List<WorkStatusMaster>
            {
                new WorkStatusMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Approve",
                    Description = "Confirm the tasks are actually finished as reported",
                    IsSystem = true,
                    TenantId = tenantId
                },
                new WorkStatusMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Partially Approve",
                    Description = "Not all tasks are actually finished as reported",
                    IsSystem = true,
                    TenantId = tenantId
                },
                new WorkStatusMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "NCR",
                    Description = "Tasks are not finished as reported or have any issues in al the tasks",
                    IsSystem = true,
                    TenantId = tenantId
                }
            };
        }
        public List<ExpenseCategoryMaster> GetExpenseCategoryData(Guid tenantId)
        {
            return new List<ExpenseCategoryMaster>
            {
                new ExpenseCategoryMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Procurement",
                    Description = "Materials, equipment and supplies purchased for site operations.",
                    NoOfPersonsRequired = false,
                    IsActive = true,
                    IsAttachmentRequried = true,
                    TenantId = tenantId
                },
                new ExpenseCategoryMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Transport",
                    Description = "Vehicle fuel, logistics services and delivery of goods or personnel.",
                    NoOfPersonsRequired = false,
                    IsActive = true,
                    IsAttachmentRequried = false,
                    TenantId = tenantId
                },
                new ExpenseCategoryMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Travelling",
                    Description = "Delivery of personnel.",
                    NoOfPersonsRequired = true,
                    IsActive = true,
                    IsAttachmentRequried = false,
                    TenantId = tenantId
                },
                new ExpenseCategoryMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Mobilization",
                    Description = "Site setup costs including equipment deployment and temporary infrastructure.",
                    NoOfPersonsRequired = false,
                    IsActive = true,
                    IsAttachmentRequried = true,
                    TenantId = tenantId
                },
                new ExpenseCategoryMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Employee Welfare",
                    Description = " Worker amenities like snacks, meals, safety gear, accommodation, medical support etc.",
                    NoOfPersonsRequired = true,
                    IsActive = true,
                    IsAttachmentRequried = true,
                    TenantId = tenantId
                },
                new ExpenseCategoryMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Maintenance & Utilities",
                    Description = "Machinery servicing, electricity, water, and temporary office needs.",
                    NoOfPersonsRequired = false,
                    IsActive = true,
                    IsAttachmentRequried = true,
                    TenantId = tenantId
                },
                new ExpenseCategoryMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Vendor/Supplier Payments",
                    Description = "Scheduled payments for external services or goods.",
                    NoOfPersonsRequired = false,
                    IsActive = true,
                    IsAttachmentRequried = true,
                    TenantId = tenantId
                },
                new ExpenseCategoryMaster
                {
                    Id = Guid.NewGuid(),
                    Name = "Compliance & Safety",
                    Description = "Government fees, insurance, inspections and safety-related expenditures.",
                    NoOfPersonsRequired = false,
                    IsActive = true,
                    IsAttachmentRequried = true,
                    TenantId = tenantId
                }
            };
        }
        public List<object> GetData(Guid tenantId)
        {
            return new List<object>
            {
            };
        }
    }
}
