export const PERMISSIONS = {
    overviewView: "overview:view",
    userView: "user:view",
    userCreate: "user:create",
    userUpdate: "user:update",
    userStatus: "user:status",
    userResetPassword: "user:reset-password",
    userExport: "user:export",
    jobView: "job:view",
    jobCancel: "job:cancel",
    teamView: "team:view",
    teamCreate: "team:create",
    teamUpdate: "team:update",
    countryView: "country:view",
    countryCreate: "country:create",
    countryUpdate: "country:update",
    countryStatus: "country:status",
    regionView: "region:view",
    regionCreate: "region:create",
    regionUpdate: "region:update",
    regionStatus: "region:status",
    hostView: "host:view",
    hostAgencyPolicyView: "host-agency-policy:view",
    hostAgencyPolicyCreate: "host-agency-policy:create",
    hostAgencyPolicyUpdate: "host-agency-policy:update",
    hostAgencyPolicyDelete: "host-agency-policy:delete",
    hostAgencyPolicyPublish: "host-agency-policy:publish",
    teamSalaryPolicyView: "team-salary-policy:view",
    teamSalaryPolicyCreate: "team-salary-policy:create",
    teamSalaryPolicyUpdate: "team-salary-policy:update",
    teamSalaryPolicyDelete: "team-salary-policy:delete",
    hostSalarySettlementView: "host-salary-settlement:view",
    hostSalarySettlementSettle: "host-salary-settlement:settle",
    agencyView: "agency:view",
    agencyCreate: "agency:create",
    agencyStatus: "agency:status",
    agencyDelete: "agency:delete",
    bdView: "bd:view",
    bdCreate: "bd:create",
    bdUpdate: "bd:update",
    coinSellerView: "coin-seller:view",
    coinSellerCreate: "coin-seller:create",
    coinSellerUpdate: "coin-seller:update",
    coinSellerStockCredit: "coin-seller:stock-credit",
    coinSellerExchangeRate: "coin-seller:exchange-rate",
    coinSellerSubApplicationView: "coin-seller-sub-application:view",
    coinSellerSubApplicationAudit: "coin-seller-sub-application:audit",
    hostWithdrawalView: "host-withdrawal:view",
    pointWithdrawalConfigView: "point-withdrawal-config:view",
    pointWithdrawalConfigUpdate: "point-withdrawal-config:update",
    financeView: "finance:view",
    financeWithdrawalView: "finance-withdrawal:view",
    financeWithdrawalAudit: "finance-withdrawal:audit",
    operationsWithdrawalView: "operations-withdrawal:view",
    operationsWithdrawalAudit: "operations-withdrawal:audit",
    financeOrderCoinSellerRechargeView: "finance-order:coin-seller-recharge:view",
    financeOrderCoinSellerRechargeCreate: "finance-order:coin-seller-recharge:create",
    financeOrderCoinSellerRechargeVerify: "finance-order:coin-seller-recharge:verify",
    financeOrderCoinSellerRechargeGrant: "finance-order:coin-seller-recharge:grant",
    financeOrderUsdtAddressUpdate: "finance-order:usdt-address:update",
    coinLedgerView: "coin-ledger:view",
    coinSellerLedgerView: "coin-seller-ledger:view",
    giftRecordView: "gift-record:view",
    coinAdjustmentView: "coin-adjustment:view",
    coinAdjustmentCreate: "coin-adjustment:create",
    externalAdminUserView: "external-admin-user:view",
    externalAdminUserCreate: "external-admin-user:create",
    externalAdminUserPermissions: "external-admin-user:permissions",
    externalAdminUserStatus: "external-admin-user:status",
    externalAdminUserResetPassword: "external-admin-user:reset-password",
    reportView: "report:view",
    giftDiamondView: "gift-diamond:view",
    giftDiamondUpdate: "gift-diamond:update",
    policyTemplateView: "policy-template:view",
    policyTemplateCreate: "policy-template:create",
    policyInstanceCreate: "policy-instance:create",
    policyInstanceUpdate: "policy-instance:update",
    policyInstancePublish: "policy-instance:publish",
    fullServerNoticeView: "full-server-notice:view",
    fullServerNoticeSend: "full-server-notice:send",
    paymentBillView: "payment-bill:view",
    paymentProductView: "payment-product:view",
    paymentProductCreate: "payment-product:create",
    paymentProductUpdate: "payment-product:update",
    paymentProductDelete: "payment-product:delete",
    paymentTemporaryLinkView: "payment-temporary-link:view",
    paymentTemporaryLinkCreate: "payment-temporary-link:create",
    paymentThirdPartyView: "payment-third-party:view",
    paymentThirdPartyUpdate: "payment-third-party:update",
    gameView: "game:view",
    gameCreate: "game:create",
    gameUpdate: "game:update",
    gameStatus: "game:status",
    gameDelete: "game:delete",
    roleView: "role:view",
    roleCreate: "role:create",
    roleUpdate: "role:update",
    roleDelete: "role:delete",
    roleDataScope: "role:data-scope",
    rolePermission: "role:permission",
    roleManage: "role:manage",
    permissionView: "permission:view",
    permissionCreate: "permission:create",
    permissionUpdate: "permission:update",
    permissionDelete: "permission:delete",
    permissionSync: "permission:sync",
    menuView: "menu:view",
    menuCreate: "menu:create",
    menuUpdate: "menu:update",
    menuDelete: "menu:delete",
    menuSort: "menu:sort",
    menuVisible: "menu:visible",
    logView: "log:view",
    logExport: "log:export",
    appUserView: "app-user:view",
    appUserUpdate: "app-user:update",
    appUserStatus: "app-user:status",
    appUserPassword: "app-user:password",
    appUserToken: "app-user:token",
    appUserLevel: "app-user:level",
    appUserExport: "app-user:export",
    prettyIdView: "pretty-id:view",
    prettyIdUpdate: "pretty-id:update",
    prettyIdGenerate: "pretty-id:generate",
    prettyIdGrant: "pretty-id:grant",
    levelConfigView: "level-config:view",
    levelConfigUpdate: "level-config:update",
    riskConfigView: "risk-config:view",
    riskConfigUpdate: "risk-config:update",
    regionBlockView: "region-block:view",
    regionBlockUpdate: "region-block:update",
    roomView: "room:view",
    roomUpdate: "room:update",
    roomDelete: "room:delete",
    roomPinView: "room-pin:view",
    roomPinCreate: "room-pin:create",
    roomPinCancel: "room-pin:cancel",
    roomConfigView: "room-config:view",
    roomConfigUpdate: "room-config:update",
    roomWhitelistView: "room-whitelist:view",
    roomWhitelistUpdate: "room-whitelist:update",
    roomRobotView: "room-robot:view",
    roomRobotCreate: "room-robot:create",
    roomRobotUpdate: "room-robot:update",
    appConfigView: "app-config:view",
    appConfigUpdate: "app-config:update",
    appVersionView: "app-version:view",
    appVersionCreate: "app-version:create",
    appVersionUpdate: "app-version:update",
    appVersionDelete: "app-version:delete",
    resourceView: "resource:view",
    resourceCreate: "resource:create",
    resourceUpdate: "resource:update",
    resourceDelete: "resource:delete",
    resourceShopView: "resource-shop:view",
    resourceShopUpdate: "resource-shop:update",
    resourceGroupView: "resource-group:view",
    resourceGroupCreate: "resource-group:create",
    resourceGroupUpdate: "resource-group:update",
    resourceGrantView: "resource-grant:view",
    resourceGrantCreate: "resource-grant:create",
    resourceGrantRevoke: "resource-grant:revoke",
    giftView: "gift:view",
    giftCreate: "gift:create",
    giftUpdate: "gift:update",
    giftStatus: "gift:status",
    giftDelete: "gift:delete",
    emojiPackView: "emoji-pack:view",
    emojiPackCreate: "emoji-pack:create",
    activityTemplateView: "activity-template:view",
    activityTemplateCreate: "activity-template:create",
    activityTemplateUpdate: "activity-template:update",
    activityTemplatePublish: "activity-template:publish",
    activityTemplateDelete: "activity-template:delete",
    activityTemplateData: "activity-template:data",
    activityTemplateExport: "activity-template:export",
    activityTemplateRetry: "activity-template:retry",
    dailyTaskView: "daily-task:view",
    dailyTaskCreate: "daily-task:create",
    dailyTaskUpdate: "daily-task:update",
    dailyTaskStatus: "daily-task:status",
    achievementView: "achievement:view",
    achievementCreate: "achievement:create",
    achievementUpdate: "achievement:update",
    registrationRewardView: "registration-reward:view",
    registrationRewardUpdate: "registration-reward:update",
    firstRechargeRewardView: "first-recharge-reward:view",
    firstRechargeRewardUpdate: "first-recharge-reward:update",
    cumulativeRechargeRewardView: "cumulative-recharge-reward:view",
    cumulativeRechargeRewardUpdate: "cumulative-recharge-reward:update",
    inviteActivityRewardView: "invite-activity-reward:view",
    inviteActivityRewardUpdate: "invite-activity-reward:update",
    sevenDayCheckInView: "seven-day-checkin:view",
    sevenDayCheckInUpdate: "seven-day-checkin:update",
    luckyGiftView: "lucky-gift:view",
    luckyGiftUpdate: "lucky-gift:update",
    luckyGiftExperiment: "lucky-gift:experiment",
    luckyGiftPoolCredit: "lucky-gift:pool-credit",
    luckyGiftPoolDebit: "lucky-gift:pool-debit",
    wheelView: "wheel:view",
    wheelUpdate: "wheel:update",
    roomRocketView: "room-rocket:view",
    roomRocketUpdate: "room-rocket:update",
    roomTurnoverRewardView: "room-turnover-reward:view",
    roomTurnoverRewardUpdate: "room-turnover-reward:update",
    roomTurnoverRewardRetry: "room-turnover-reward:retry",
    userLeaderboardView: "user-leaderboard:view",
    redPacketView: "red-packet:view",
    redPacketUpdate: "red-packet:update",
    cpConfigView: "cp-config:view",
    cpConfigUpdate: "cp-config:update",
    cpWeeklyRankView: "cp-weekly-rank:view",
    cpWeeklyRankUpdate: "cp-weekly-rank:update",
    vipConfigView: "vip-config:view",
    vipConfigUpdate: "vip-config:update",
    vipConfigGrant: "vip-config:grant",
    weeklyStarView: "weekly-star:view",
    weeklyStarCreate: "weekly-star:create",
    weeklyStarUpdate: "weekly-star:update",
    weeklyStarSettle: "weekly-star:settle",
    agencyOpeningView: "agency-opening:view",
    agencyOpeningCreate: "agency-opening:create",
    agencyOpeningUpdate: "agency-opening:update",
    uploadCreate: "upload:create",
} as const;

export type PermissionCode = (typeof PERMISSIONS)[keyof typeof PERMISSIONS];

export const PERMISSION_CODES = Object.values(PERMISSIONS) as PermissionCode[];

export const MENU_CODES = {
    overview: "overview",
    system: "system",
    systemUsers: "system-users",
    systemTeams: "system-teams",
    systemRoles: "system-roles",
    systemMenus: "system-menus",
    logs: "logs",
    logsLogin: "logs-login",
    logsOperations: "logs-operations",
    appUsers: "app-users",
    appUserList: "app-user-list",
    appUserDetail: "app-user-detail",
    appUserBans: "app-user-bans",
    appUserLoginLogs: "app-user-login-logs",
    appUserLevelConfig: "app-user-level-config",
    appUserRiskConfig: "app-user-risk-config",
    appUserRegionBlocks: "app-user-region-blocks",
    appUserPrettyIds: "app-user-pretty-ids",
    rooms: "rooms",
    roomList: "room-list",
    roomPins: "room-pins",
    roomConfig: "room-config",
    roomWhitelist: "room-whitelist",
    roomRobots: "room-robots",
    appConfig: "app-config",
    appConfigH5: "app-config-h5",
    appConfigBanners: "app-config-banners",
    appConfigSplashScreens: "app-config-splash-screens",
    appConfigPopups: "app-config-popups",
    appConfigExplore: "app-config-explore",
    appConfigVersions: "app-config-versions",
    resources: "resources",
    resourceList: "resource-list",
    resourceShopList: "resource-shop-list",
    resourceGroupList: "resource-group-list",
    resourceGrantList: "resource-grant-list",
    giftList: "gift-list",
    emojiPackList: "emoji-pack-list",
    operations: "operations",
    operationCoinLedger: "operation-coin-ledger",
    operationCoinSellerLedger: "operation-coin-seller-ledger",
    operationGiftRecords: "operation-gift-records",
    operationCoinAdjustment: "operation-coin-adjustment",
    operationExternalAdminUsers: "operation-external-admin-users",
    operationReports: "operation-reports",
    operationGiftDiamond: "operation-gift-diamond",
    policyTemplate: "policy-template",
    operationFullServerNotice: "operation-full-server-notice",
    luckyGift: "lucky-gift",
    wheel: "wheel",
    activities: "activities",
    activityTemplate: "activity-template",
    dailyTaskList: "daily-task-list",
    registrationReward: "registration-reward",
    firstRechargeReward: "first-recharge-reward",
    cumulativeRechargeReward: "cumulative-recharge-reward",
    inviteActivityReward: "invite-activity-reward",
    achievementConfig: "achievement-config",
    sevenDayCheckIn: "seven-day-checkin",
    roomRocket: "room-rocket",
    roomTurnoverReward: "room-turnover-reward",
    userLeaderboard: "user-leaderboard",
    redPacket: "red-packet",
    cpConfig: "cp-config",
    cpWeeklyRank: "cp-weekly-rank",
    vipConfig: "vip-config",
    weeklyStar: "weekly-star",
    agencyOpening: "agency-opening",
    geo: "geo",
    hostOrg: "host-org",
    hostOrgCountries: "host-org-countries",
    hostOrgRegions: "host-org-regions",
    hostOrgManagers: "host-org-managers",
    hostOrgAgencies: "host-org-agencies",
    hostOrgBdLeaders: "host-org-bd-leaders",
    hostOrgBds: "host-org-bds",
    hostOrgHosts: "host-org-hosts",
    hostAgencyPolicy: "host-agency-policy",
    hostSalarySettlement: "host-salary-settlement",
    hostOrgCoinSellers: "host-org-coin-sellers",
    hostOrgCoinSellerSubApplications: "host-org-coin-seller-sub-applications",
    hostWithdrawals: "host-withdrawals",
    hostOrgPointWithdrawalConfig: "host-org-point-withdrawal-config",
    payment: "payment",
    paymentBillList: "payment-bill-list",
    paymentRechargeProducts: "payment-recharge-products",
    paymentTemporaryLinks: "payment-temporary-links",
    paymentThirdParty: "payment-third-party",
    games: "games",
    gameList: "game-list",
    selfGames: "self-games",
    gameRobots: "game-robots",
    roomRpsConfig: "room-rps-config",
    roomRpsChallenges: "room-rps-challenges",
} as const;

export type MenuCode = (typeof MENU_CODES)[keyof typeof MENU_CODES];

export const MENU_CODE_VALUES = Object.values(MENU_CODES) as MenuCode[];
