import { Request, Response } from 'express';

import { Controller, GET, Page, BaseController } from '@BridgemanAccessible/ba-web-framework';

@Controller()
export class SEOController extends BaseController {
    @Page('Search Terms', 'seo-terms/index.ejs')
    @GET('/seo')
    private seoIndex(req: Request, res: Response) {
        return {
            keywords: ['Bridgeman Accessible', 'SEO', 'Winnipeg', 'disabled accommodations winnipeg', 'translator services winnipeg', 'sign language translators winnipeg', 'accessible resources winnipeg', 'assistive tech winnipeg'].join(', '),
            description: 'Bridgeman Accessible SEO terms and pages for better search engine visibility.'
        }
    }

    @Page('Disabled Accommodations Winnipeg', 'seo-terms/disabled-accommodations-winnipeg.ejs')
    @GET('/seo/disabled-accommodations-winnipeg')
    private disabledAccommodationsWinnipegPage(req: Request, res: Response) {
        return {
            keywords: ['Bridgeman Accessible', 'SEO', 'Winnipeg', 'disabled accommodations winnipeg'].join(', '),
            description: 'Disabled accommodations in Winnipeg are essential for ensuring accessibility and inclusivity. Bridgeman Accessible provides insights and resources on this topic.'
        }
    }

    @Page('Translator Services Winnipeg', 'seo-terms/translator-services-winnipeg.ejs')
    @GET('/seo/translator-services-winnipeg')
    private translatorServicesWinnipegPage(req: Request, res: Response) {
        return {
            keywords: ['Bridgeman Accessible', 'SEO', 'Winnipeg', 'translator services winnipeg'].join(', '),
            description: 'Translator services in Winnipeg are essential for bridging communication gaps. Bridgeman Accessible provides information on available translation services.'
        }
    }

    @Page('Sign Language Translators Winnipeg', 'seo-terms/sign-language-translators-winnipeg.ejs')
    @GET('/seo/sign-language-translators-winnipeg')
    private signLanguageTranslatorsWinnipegPage(req: Request, res: Response) {
        return {
            keywords: ['Bridgeman Accessible', 'SEO', 'Winnipeg', 'sign language translators winnipeg'].join(', '),
            description: 'Sign language translators in Winnipeg play a vital role in communication accessibility. Bridgeman Accessible provides information on what sign language translation services it provides.'
        }
    }
    
    @Page('Accessible Resources Winnipeg', 'seo-terms/accessible-resources-winnipeg.ejs')
    @GET('/seo/accessible-resources-winnipeg')
    private accessibleResourcesWinnipegPage(req: Request, res: Response) {
        return {
            keywords: ['Bridgeman Accessible', 'SEO', 'Winnipeg', 'accessible resources winnipeg'].join(', '),
            description: 'Accessible resources in Winnipeg are essential for promoting inclusivity. Bridgeman Accessible offers a range of resources to support accessibility initiatives.'
        }
    }

    @Page('Assistive Tech Winnipeg', 'seo-terms/assistive-tech-winnipeg.ejs')
    @GET('/seo/assistive-tech-winnipeg')
    private assistiveTechWinnipegPage(req: Request, res: Response) {
        return {
            keywords: ['Bridgeman Accessible', 'SEO', 'Winnipeg', 'assistive tech winnipeg'].join(', '),
            description: 'Assistive technology in Winnipeg is crucial for enhancing accessibility. Bridgeman Accessible provides information and resources on assistive tech solutions.'
        }
    }

    @GET('/site-map.xml')
    private siteMap(req: Request, res: Response) {
        res.type('xml');
        res.sendFile('static/xml/sitemap.xml', { root: __dirname + '/..' });
    }

    @GET('/robots.txt')
    private robotsTxt(req: Request, res: Response) {
        res.type('text/plain');
        res.sendFile('static/robots.txt', { root: __dirname + '/..' });
    }
}